La herramienta que necesitas, lista para usar

Editor de parámetros URL

Pega una URL y su consulta se separa en una tabla de nombres y valores, y la URL se reconstruye mientras editas. Los parámetros de rastreo como utm, gclid y fbclid aparecen rayados en la barra de longitud y se quitan de una vez, mientras que los elementos que no tocas conservan su escritura original. Una URL dentro de un valor se abre como tabla propia, y con nombres repetidos la herramienta compara lo que leen PHP, Python, Java y otros servidores.

Última modificación 2026-10-22Todo el cálculo ocurre en tu navegador
Ejemplos

Barra de longitud

URL reconstruida

Espacio

Tabla de elementos

    Lo que lee el servidor

    • JavaScript
    • PHP
    • Python
    • Django
    • Node · Express 5
    • Java Servlet
    • Go
    • ASP.NET Core

    Última modificación 2026-10-22No guardamos lo que escribes

    Criterio ROBERINLa herramienta que necesitas,
    lista para usar.
    • Claro a primera vistaEntradas y resultados donde los esperas.
    • Primero el resultadoLa cifra clave va primero; el proceso solo cuando lo necesitas.
    • Pedir menosSin registro ni datos innecesarios.

    La consulta de una URL es lo que sigue a ? : pares nombre=valor unidos por &

    En una dirección web, la consulta va desde el primer ? hasta un #. En https://shop.example.com/products?color=white&size=42 la consulta es color=white&size=42: dos pares separados por &, con los nombres color y size y los valores white y 42. La consulta lleva al servidor o al script de la página cosas como una búsqueda, un número de página, filtros o etiquetas de publicidad. Cada sitio decide qué significa cada nombre.

    Esta herramienta separa la consulta de la URL que pegas en una tabla de nombres y valores, y reconstruye la URL mientras editas. El texto con porcentajes se muestra como caracteres legibles y los pares que no tocas conservan su escritura original. Los parámetros de rastreo que añaden las empresas de publicidad y analítica se marcan solo si su documentación oficial los confirma, y puedes quitarlos de una vez. También muestra qué valor leen PHP, Python, Java y otros servidores cuando un mismo nombre aparece varias veces. La URL que pegas no sale de tu navegador.

    Cuándo conviene ver la consulta como tabla

    • Antes de compartir un enlace: los enlaces de anuncios y boletines suelen acabar en una cola larga de utm_source, gclid o fbclid. Sin ella la URL es más corta, y un ID que señala un clic de anuncio o un destinatario de correo no se reutiliza en la visita de otra persona.
    • Crear o revisar enlaces de campaña: se ve de un vistazo si utm_source, utm_medium y utm_campaign están bien escritos y si algún nombre aparece dos veces. '+ UTM' añade los tres como filas vacías.
    • Comprobar la URL de una petición a una API: cambia un valor y vuelve a enviar, o mira cómo se transmiten un valor vacío y un nombre sin =. El resultado también se copia como JSON.
    • Corregir la URL de retorno tras un login o un pago: la dirección dentro de redirect_uri o next está codificada por segunda vez y cuesta leerla. 'Abrir como tabla' permite editar la URL interior por separado y devolverla a la exterior.
    • Comprobar que los filtros llegan al servidor: PHP lee color=white&color=black como un solo valor (el último), mientras que Python lee una lista de dos. Así comparas lo que recibe realmente el servidor.
    • Leer URL de registros de acceso: los registros del servidor y las herramientas de analítica guardan búsquedas y filtros codificados. Decodifícalos elemento por elemento.

    Cómo se usa

    1. Pegar: escribe en 'URL original' una URL completa (https://…), una consulta que empiece por ? o solo name=kim&page=2. La consulta se separa en una tabla de nombres y valores, y el principio de la URL y lo que va tras # tienen su propia casilla.
    2. Quitar el rastreo: en la barra de longitud, las celdas rayadas son ID de clic o de visita y las celdas naranja claro son etiquetas de campaña. 'Quitar ID de clic' elimina solo ID como gclid y fbclid. 'Quitar todo el rastreo' elimina también etiquetas de campaña como UTM. 'Deshacer' las recupera al instante.
    3. Editar la tabla: escribe los valores como texto normal, sin codificar. Intro pasa a la celda siguiente y en la última fila crea un elemento nuevo (Mayús+Intro hace un salto de línea dentro del valor). × quita una fila, 'Ordenar por nombre' ordena y 'Restablecer' vuelve al principio.
    4. Abrir una URL dentro de un valor: cuando un valor es una URL, en la columna de marcas aparece 'Abrir como tabla'. Edita la URL interior igual que la exterior y pulsa 'Volver a la URL exterior' para ponerla en el valor exterior.
    5. Copiar: copia la URL reconstruida como URL completa, solo consulta o JSON. Los elementos editados van subrayados. También eliges si los espacios editados se escriben como + o %20, y si los elementos intactos conservan su escritura original.
    6. Ver lo que lee el servidor: al pulsar una fila, las tarjetas de abajo muestran cómo lee ese nombre cada uno de ocho entornos. El color del borde izquierdo indica la forma de leer (primer valor, último valor, lista, unido con comas, descartado).

    Los caracteres que separan la consulta

    Las reglas de análisis de consultas del estándar WHATWG URL (application/x-www-form-urlencoded) cortan la consulta en &, separan cada trozo en su primer = en nombre y valor, convierten + en espacio, devuelven %XX a bytes y los leen como UTF-8. El URLSearchParams del navegador sigue exactamente esas reglas, y esta herramienta también al construir la tabla.

    Qué hace cada carácter
    CarácterQué haceEjemploValor que se ve en la tabla
    ?Empieza la consulta, justo tras el primer ? de la URL. Un ? dentro de la consulta suele ser un carácter más/search?q=a?bq → a?b
    &Frontera entre elementosa=1&b=2a → 1, b → 2
    =Frontera entre nombre y valor. Solo cuenta el primer =a=1=2a → 1=2
    #Termina la consulta y empieza el fragmento. El fragmento no se envía al servidor?q=a#topq → a, fragmento top
    +Un espacioq=red+shoeq → red shoe
    %XXUn byte (dos dígitos hexadecimales)k=%C3%A9k → é
    ;No es un separadorz=1;w=2z → 1;w=2

    Un flag suelto, sin signo igual, se lee como un elemento de valor vacío, igual que flag=, y un trozo vacío como && se salta. La especificación HTML 4.01 recomendaba que los servidores aceptaran ; en lugar de &, pero el estándar URL actual y parse_qs de Python usan solo &. Go considera inválido un par que contenga ; y lo descarta.

    Cómo se leen nombres y valores

    Consulta original y valor que se ve en la tabla
    Consulta originalValor en la tablaPor qué
    q=red+shoered shoe+ es un espacio
    lang=C%2B%2BC++Un signo más literal se escribe %2B
    lang=C++C seguida de dos espaciosLos dos + se leen como espacios
    p=100%100%Un % sin dos dígitos hexadecimales detrás se queda como carácter (en la columna de marcas aparece '% mal')
    b=%2526%26Se decodifica una sola vez. Un valor codificado dos veces conserva una capa
    e=%E9�Es la 'é' de Windows-1252, un byte que no es UTF-8 válido (marca 'No es UTF-8')
    flag(valor vacío)Sin signo igual, el valor queda vacío (marca 'Sin =')

    Los valores escritos en una codificación antigua que no sea UTF-8 se ven rotos en la tabla. Si no editas ese elemento, 'Conservar notación original' deja intactos los bytes originales y la URL reconstruida se abre como antes. Para saber qué caracteres eran, usa la detección automática de codificación del codificador y decodificador de URL.

    Parámetros de rastreo: qué se puede quitar

    Un parámetro de rastreo no tiene que ver con el contenido de la página. Indica al sitio de qué anuncio, correo o campaña viene el visitante. Sin él normalmente se abre la misma página, pero el responsable del sitio ya no sabe de dónde llegó esa visita. La herramienta marca solo los nombres confirmados en la documentación oficial de cada empresa y los reparte en dos grupos.

    • ID de clic o de visita (celdas rayadas de la barra): valores que señalan un clic de anuncio, un destinatario de correo o una visita concretos. No hay motivo para pasárselos a otra persona, así que conviene quitarlos antes de compartir.
    • Etiquetas de campaña (celdas claras): rótulos que indican a qué fuente, medio y campaña pertenece el enlace. Consérvalas en los enlaces de campaña que creas tú. Si reenvías el enlace de otra persona, puedes quitarlas.
    Parámetros de rastreo que reconoce la herramienta (según la documentación oficial a 22/10/2026)
    NombreQuién lo añadeSignificadoGrupo
    utm_source utm_medium utm_campaign utm_term utm_contentEl anunciante que crea el enlace (los lee Google Analytics)Fuente, medio, campaña, palabra clave, contenido del anuncioEtiqueta de campaña
    utm_id utm_source_platform utm_creative_format utm_marketing_tacticEl anunciante (la plataforma de origen la rellenan solas algunas plataformas de Google)ID de campaña, plataforma de origen, formato del anuncio, táctica de segmentaciónEtiqueta de campaña
    gclid gbraid wbraidEtiquetado automático de Google AdsID de clic de anuncio (gbraid y wbraid sirven para medir conversiones en iOS)ID de clic o visita
    gad_source gad_campaignidGoogle AdsOrigen del anuncio e ID de la campaña que generó el clicEtiqueta de campaña
    dclidCampaign Manager 360, Display & Video 360ID de clic de anuncio de displayID de clic o visita
    srsltidEtiquetado automático de Google Merchant CenterSeñala una visita llegada desde una ficha gratuita de Google ShoppingID de clic o visita
    _glEtiqueta de Google (medición entre dominios)Valor de enlace que pasa los datos de la visita a otro dominioID de clic o visita
    fbclidMetaID de clic en enlaces de Facebook e InstagramID de clic o visita
    msclkidEtiquetado automático de Microsoft AdvertisingID de clic de anuncioID de clic o visita
    ttclid twclid li_fat_idTikTok · X · LinkedInID de clic de anuncio de cada empresaID de clic o visita
    mc_eidMailchimp (campañas con seguimiento de comercio electrónico activado)ID del destinatario del correoID de clic o visita
    mc_cidMailchimpID de la campaña de correo que contiene el enlaceEtiqueta de campaña
    _hsenc _hsmiCorreo de HubSpotIdentificación del destinatario y seguimiento de clics en el correoID de clic o visita
    yclidYandex DirectID de clic de anuncioID de clic o visita
    mtm_campaign pk_campaign y otrosAnalítica de MatomoRótulos de nombre de campaña, palabra clave y fuenteEtiqueta de campaña
    NaPmNaver Ads (buscador surcoreano)Se añade al hacer clic en un anuncio y sirve para el seguimiento de conversionesID de clic o visita

    Los valores sin explicación oficial, como si en los enlaces para compartir de YouTube o igsh en los de Instagram, no están en la lista. Si sabes lo que hacen y quieres quitarlos, pulsa × en la fila. Los nombres que solo se parecen, como ref, source o from, no se tocan porque algunos sitios los usan para el contenido de la página.

    Un mismo nombre repetido: cada servidor lo lee a su manera

    Cuando un nombre se repite, como en tag=red&tag=blue, el estándar URL conserva los dos elementos en orden. Qué valor usa luego el código depende del lenguaje o del framework que recibe la petición, y varían. Muchas tiendas envían varios valores a propósito para los filtros, de modo que un servidor que lea un solo valor pierde parte de la selección.

    Resultado de leer tag=red&tag=blue
    EntornoCódigo que lo leeResultadoCómo lo lee
    JavaScriptnew URLSearchParams(q).get('tag')"red"Primer valor (getAll devuelve los dos)
    PHP$_GET['tag']"blue"Último valor
    Pythonparse_qs(q)['tag']["red", "blue"]Todos en una lista
    Djangorequest.GET['tag']"blue"Último valor (getlist devuelve los dos)
    Node · Express 5req.query.tag["red", "blue"]Todos en una lista (analizador por defecto: querystring)
    Java Servletrequest.getParameter("tag")"red"Primer valor (getParameterValues devuelve los dos)
    Gor.URL.Query().Get("tag")"red"Primer valor
    ASP.NET CoreRequest.Query["tag"]"red,blue"Unidos con una coma al convertir en texto

    PHP lee tag[]=red&tag[]=blue, con corchetes tras el nombre, como un array, y convierte en guiones bajos los puntos y espacios del nombre. Así, price.min=10000 pasa a ser $_GET['price_min'] y puede chocar con otro elemento llamado price_min. El parse_qs de Python descarta por defecto los valores vacíos, de modo que flag y empty= ni siquiera dejan clave; para conservarlos se pasa keep_blank_values=True. Go descarta los pares que contienen ; o un % incorrecto. 'Lo que lee el servidor', debajo de la herramienta, calcula estas diferencias para el elemento que elijas.

    Cuando el valor lleva otra URL

    Cuando una URL entera va dentro de un valor, como en redirect_uri, next o returnUrl, hay que codificar todos los ? & = # de la URL interior para que no se lean como caracteres de la consulta exterior. Si la pegas sin codificar, lo que sigue al & interior se convierte en otro elemento de la URL exterior.

    Poner https://shop.example.com/cart?item=12&size=L en next
    Cómo se insertaElementos que lee la URL exterior
    Pegada tal cual
    ?next=https://shop.example.com/cart?item=12&size=L
    next → https://shop.example.com/cart?item=12
    size → L (se parte en dos)
    Codificada
    ?next=https%3A%2F%2Fshop.example.com%2Fcart%3Fitem%3D12%26size%3DL
    next → https://shop.example.com/cart?item=12&size=L

    Si la URL interior tiene valores codificados propios, se codifican una vez más y aparecen como %252F. 'Abrir como tabla' muestra aparte la URL interior, con una capa menos que el valor exterior. Tras editarla, 'Volver a la URL exterior' la codifica de nuevo y la devuelve a su sitio. En el ejemplo 'Redirección de login', el redirect_uri lleva una capa más: next=%2Fcart.

    Qué cambia al reconstruir la URL

    Una misma consulta se puede escribir de varias formas. Un espacio como + o %20, flag o flag=, los dígitos hexadecimales en mayúscula %C3 o en minúscula %c3 se leen como el mismo valor. A la mayoría de los servidores les da igual, pero una URL firmada puede dejar de valer, según el servidor, si se escribe distinto de como se firmó. Por eso 'Conservar notación original' viene activado y solo se vuelven a codificar los elementos editados.

    Cómo queda un elemento original en la URL reconstruida
    Elemento originalConservar notación originalDesactivado · espacio como +Desactivado · espacio como %20
    q=red%20shoeq=red%20shoeq=red+shoeq=red%20shoe
    flagflagflag=flag=
    n=%c3%a9n=%c3%a9n=%C3%A9n=%C3%A9
    t=~tildet=~tildet=%7Etildet=~tilde
    a=x;ya=x;ya=x%3Bya=x%3By

    La regla del + es la de los formularios HTML y de URLSearchParams, y la del %20 es la de encodeURIComponent() de JavaScript. El URLSearchParams del navegador reescribe todos los elementos aunque borres solo uno, y entonces %20 se convierte en + (véase el código de abajo). Las URL firmadas, como una URL prefirmada de AWS S3 (X-Amz-Signature) o una SAS de Azure Storage (sig), no deben editarse: hace falta una firma nueva. La herramienta avisa cuando editas una URL que lleva firma.

    Hacerlo en código

    // JavaScript
    const u = new URL('https://shop.example.com/p?color=white&color=black&q=red%20shoe&utm_source=boletin');
    u.searchParams.getAll('color');     // ['white', 'black']
    u.searchParams.delete('utm_source');
    u.toString();  // 'https://shop.example.com/p?color=white&color=black&q=red+shoe'  (%20 pasó a +)
    
    # Python
    from urllib.parse import urlsplit, parse_qsl, urlencode, urlunsplit
    s = urlsplit('https://shop.example.com/p?color=white&color=black&flag&utm_source=boletin')
    pairs = [(k, v) for k, v in parse_qsl(s.query, keep_blank_values=True) if not k.startswith('utm_')]
    urlunsplit(s._replace(query=urlencode(pairs)))
    # 'https://shop.example.com/p?color=white&color=black&flag='  (flag pasó a flag=)
    
    // PHP
    parse_str('tag=red&tag=blue&size[]=S&size[]=M&price.min=10000', $q);
    // $q = ['tag' => 'blue', 'size' => ['S', 'M'], 'price_min' => '10000']
    http_build_query(['tag' => ['red', 'blue']]);
    // 'tag%5B0%5D=red&tag%5B1%5D=blue'

    Los tres analizan la consulta y la vuelven a escribir, así que ninguno conserva la escritura original. Si esta importa, hay que recortar de la cadena de consulta los trozos que sobran y unir el resto a mano. Es lo que hace 'Conservar notación original' en esta herramienta.

    Errores frecuentes

    • Escribir %20 en una celda de valor: los valores de la tabla son texto ya decodificado. Si escribes %20, la herramienta ve los caracteres %, 2 y 0 y envía %2520. Escribe un espacio normal.
    • Pegar C++ directamente en una consulta: lang=C++ se lee como 'C' y dos espacios. Si escribes C++ en una celda de valor, la herramienta lo escribe como C%2B%2B.
    • Borrar un nombre repetido pensando que es un error: color=white&color=black puede ser un filtro con varias opciones. Comprueba antes cómo lo lee el servidor.
    • Borrar los elementos de valor vacío: empty= o flag también pueden significar algo. Algunos servidores activan una función solo porque el elemento existe.
    • Tratar como consulta lo que va tras #: el x=1 de /page#tab?x=1 forma parte del fragmento, no viaja al servidor, y la herramienta lo deja en la casilla del fragmento.
    • Olvidar codificar una URL dentro de un valor: el & de la URL interior parte en dos el elemento exterior.
    • Alargar solo la caducidad de una URL firmada: cambiar X-Amz-Expires invalida la firma y se rechaza la petición.

    Límites

    • La herramienta separa la consulta solo en &, como el estándar URL. No separa los sitios que dividen los elementos con ; o , ni los parámetros dentro de la ruta (/a;b=1/).
    • Los valores se decodifican solo como UTF-8. Los valores en codificaciones antiguas se ven rotos, y al editar ese elemento se vuelve a codificar como UTF-8.
    • El principio de la URL (esquema, host y ruta) y el fragmento # se tratan tal como están escritos, sin codificar ni limpiar.
    • Incluso con 'Conservar notación original', si cambias cualquier elemento desaparecen los trozos vacíos (&&) y el & final.
    • Solo se marcan los parámetros de rastreo confirmados en documentación oficial. Cualquier otro valor de rastreo tienes que quitarlo tú.
    • 'Lo que lee el servidor' muestra el comportamiento por defecto de cada entorno. Si cambias la configuración o usas otro analizador (qs, Rack, etc.), el resultado varía, y límites como max_input_vars de PHP no se tienen en cuenta.
    • La herramienta no se conecta a la URL, así que no comprueba si la dirección abre ni si es segura.

    Base: el análisis de la consulta sigue las reglas application/x-www-form-urlencoded del estándar WHATWG URL, los parámetros de rastreo proceden de las páginas de ayuda oficiales de cada empresa, y el comportamiento de cada servidor se comprobó el 22 de octubre de 2026 con ejecuciones de PHP 8.5, Python 3.14 y Node.js 26 y con la documentación oficial de Java Servlet, Go, ASP.NET Core, Django y Express 5.

    Fuentes

    Preguntas frecuentes

    ¿Qué es la consulta de una URL (query string)?

    Es la parte de la URL que va después del ? y antes de un posible #. Pares como color=white&size=42 unidos con & que llevan al servidor búsquedas, números de página, filtros o valores de rastreo. Cada sitio decide qué significa cada nombre.

    ¿Puedo pegar solo name=kim&page=2 sin el signo de interrogación?

    Sí. La herramienta acepta una URL completa, una consulta que empiece por ? y una consulta sin interrogación. Con una URL completa, el principio de la dirección y el fragmento # tienen su propia casilla, y puedes copiar la URL completa reconstruida o solo la consulta.

    ¿Se abre la misma página si quito los parámetros de rastreo?

    Normalmente sí, porque valores como utm o gclid sirven para contar de dónde viene una visita. Algunos sitios sí muestran un aviso o un cupón distinto según el origen, así que si la página se ve diferente, usa la URL original. También puedes quitar solo los ID de clic y dejar UTM.

    Con tag=red&tag=blue, ¿qué valor se usa?

    Depende del servidor. PHP y Django leen el último valor, blue. El get() de JavaScript, Java Servlet y Go leen el primero, red. El parse_qs de Python y Express 5 dan una lista con los dos, y ASP.NET Core los une como red,blue. Pulsa un elemento y la comparación aparece debajo de la herramienta.

    ¿Por qué el + de q=red+shoe se ve como un espacio?

    En las reglas de formulario con las que se lee una consulta, + significa espacio. Un signo más literal hay que escribirlo %2B, y si escribes C++ en una celda de valor, la URL reconstruida contiene C%2B%2B.

    Edité la tabla y %20 pasó a +. ¿Es el mismo valor?

    Sí, al leer una consulta, %20 y + son ambos un espacio. Con 'Conservar notación original' activado, los elementos que no tocas quedan tal como estaban escritos y solo los editados usan la regla que elijas (+ o %20). Una URL firmada exige que coincida cada carácter, así que necesita una firma nueva.

    ¿Cómo edito una URL que va dentro de un valor?

    Cuando un valor como redirect_uri o next es una URL, en la columna de marcas aparece 'Abrir como tabla'. Abre la URL interior como tabla propia y, después de editarla, 'Volver a la URL exterior' la codifica de nuevo y la pone en el valor exterior.

    ¿La URL que escribo se envía a un servidor o se guarda?

    No. La separación, la reconstrucción, la detección de rastreo y la comparación por servidor se calculan en este navegador. La URL no se envía ni se guarda, no se añade a la dirección de la página y la herramienta nunca se conecta a ella.