Este foro ya no está activo, así que no puedes publicar nuevas preguntas ni responder a las preguntas existentes.

El archivo XML del sitemap de Google inserta erróneamente una etiqueta </head>

25 de febrero de 2015

Hola:

Estoy generando el sitemap de la web, el cual lo genera perfectamente. La cuestión es que me mete una etiqueta <head> sin venir a cuento y no se cómo eliminarla.

<?xml version="1.0" encoding="UTF-8"?>
 
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd"
        xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
    {% for seccion in secciones %}
        {% for idioma in idiomas %}
            {% if idioma.defecto != null %}
                <sitemap>
                <loc>{{ url('sitioFrontend',{'idioma': idioma.isoCode ,'url':seccion.url}) }}</loc>
                <lastmod>{{ seccion.fechaModificacion | date('d/m/y') }}</lastmod>
                <changefreq>daily</changefreq>
                <priority>{% if seccion.tipo.slug == 'home' %}1{% else %}0.8{% endif %}</priority>
            {% else %}
                <xhtml:link
                        rel="alternate"
                        hreflang="{{ idioma.isoCode }}"
                        href="{{ seccion.url }}"
                        />
            {% endif %}
            </sitemap>
 
            {% for sub in subsecciones %}
                {% if idioma.defecto != null %}
                    <sitemap>
                    <loc>{{ url('sitioFrontend',{'idioma': idioma.isoCode ,'url':sub.url}) }}</loc>
                    <lastmod>{{ sub.fechaModificacion | date('d/m/y') }}</lastmod>
                    <changefreq>daily</changefreq>
                    <priority>0.8</priority>
                {% else %}
                    <xhtml:link
                            rel="alternate"
                            hreflang="{{ idioma.isoCode }}"
                            href="{{ seccion.url }}"
                            />
                {% endif %}
                </sitemap>
            {% endfor %}
        {% endfor %}
 
    {% endfor %}
 
</urlset>

Y la salida sería este archivo XML. Como podéis ver al principio me mete una etiqueta </head>.

<?xml version="1.0" encoding="UTF-8"?>
 
<head/><urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">

Muchas gracias por vuestra ayuda


Respuestas

#1

Como en tu plantilla no hay ni rastro de la etiqueta <head/> y en el archivo generado sí que existe, creo que puede ser el típico caso de algún "elemento mágico" que está activado y hace cambios automáticamente. ¿Tienes algún plugin o alguna utilidad tipo TidyHTML que "limpia" el código de las plantillas antes de servirlas?

Por otra parte, me parece que el formato de fecha que estás utilizando para el elemento <lastmod> no cumple el formato definido en el estándar sitemaps.org. Yo siempre lo genero con Twig de esta forma: |date('c')

@javiereguiluz

25 febrero 2015, 10:53
#2

Pues es posible que tenga algo así. Creo que en el servido esta instalado algo tipo PageSpeed, pero dudo que lo pueda modificar. ¿Hay alguna posibilidad de obviar eso y forzar la salida?

@TsubasaAkai

25 febrero 2015, 11:01
#3

Precisamente el módulo PageSpeed de Google incluye un filtro llamado Add Header que podría ser el que está actuando en este caso. Te aconsejo desactivar ese filtro en el servidor, ya que tampoco parece tan interesante.

@javiereguiluz

25 febrero 2015, 11:23
#4

Gracias, eso era. Desactivé el add_head desde .htaccess y listo.

@TsubasaAkai

25 febrero 2015, 12:12