• Skip to main content
  • Skip to header right navigation
  • Skip to site footer

Antonio Pérez

Full Stack developer

  • Home
  • Sobre mi
  • Podcast
  • Blog
  • Contacto
desarrollo full stack

Cómo generar el archivo sitemap.xml en tu app Ruby on Rails

You are here: Home / Ruby on Rails / Cómo generar el archivo sitemap.xml en tu app Ruby on Rails
04/02/2017 by apcano1978

Hoy os voy a comentar el procedimiento que sigo para crear el archivo sitemap.xml para una app con ruby on rails, en realidad es un proceso bastante sencillo y, una vez hecho, se irá actualizando automáticamente una vez lo tengamos creado cada vez que se cree una página nueva, al menos en la mayoría de las partes.

Bien, debemos seguir tres pasos principales, la creación de la ruta que llevará al archivo sitemap.xml, la creación del controlador y la creación de la vista. Vamos a ir paso a paso para que el procedimiento quede totalmente claro.

1. Creación de la ruta de acceso a sitemap.xml

En primer lugar, como de costumbre, vamos a modificar el archivo routes.rb para poder acceder a la url en la que estará el archivo sitemap.xml, para ello, vamos a poner la siguiente línea de código dentro del archivo:

# config/routes.rb

get 'sitemap.xml', :to => 'sitemap#index', :defaults => {:format => 'xml'}

Con esta línea ya hemos creado la ruta mediante a la que acceder al sitemap.

2. Creación del controlador

Ahora que ya tenemos la ruta, tenemos que crear el controlador, como siempre, recordad que estamos aplicando en Rails el modelo – vista – controlador (si no sabes que demonios es esto, en este artículo intento explicarlo, espero haberlo conseguido)

# app/controllers/sitemap_controller.rb

class SitemapController < ApplicationController
    
    layout nil
    
    def index
        headers['Content-Type'] = 'application/xml'
        respond_to do |format|
            format.xml {@products = Product.all}
        end
    end
end

En este caso, suponemos que estamos creando un sitemap para una tienda online, de hecho, queremos que, cada vez que se acceda a la url del sitemap estén incluidos todos los productos en nuestra base de datos.

Ya tenemos el controlador, vamos a por la vista

3. Generación de la vista de sitemap.xml en nuestra app

Para la vista, tan solo tendremos que crear el archivo index.xml.haml dentro de app/views/sitemap/ Yo suelo usar haml, si vosotros soléis trabajar con ficheros .html.erb, tan solo tendréis que añadir los cierres correspondientes y demás, yo trabajo indistintamente con ambos, otro día os hablaré de haml, esta abstracción de html me encanta, aunque en algunas situaciones no os lo recomiendo, yo para algunas cosas utilizo los archivos .erb pero bueno, eso mejor os lo cuento otro día, que nos vamos del tema.

# app/views/sitemap/index.xml.haml

!!! XML
%urlset{:xmlns => "http://www.sitemaps.org/schemas/sitemap/0.9"}
    %url
        %loc http://miapp.com
        %changefreq hourly
        %priority 1.0
    - if @products
        - for product in @products
            %url
                %loc http://miapp.com#{product_path(product)}
                %lastmod=product.updated_at.strftime('%Y-%m-%d')
                %changefreq monthly
                %priority 0.5

Si os fijáis, hay un pequeño detalle, he añadido una url fija al sitemap, la raíz, normalmente vais a querer añadir unas cuantas aquí al sitemap, la página de sobre nosotros, por ejemplo, la página de tienda, etc… esto ya es una decisión que debéis tomar cada uno de vosotros dependiendo de las necesidades concretas de la web.

Por lo demás, una vez hayas hecho el deploy de los cambios, con dirigirte a «http://miapp.com/sitemap.xml» deberás ver en tu navegador el xml con las url que has incluido en este archivo.

Espero haberte ayudado a generar tu sitemap.xml, si tienes alguna duda, deja un comentario, estaré encantado de verlos y contestar. Igual, si tienes algún truco o mejora, me encantará que me lo digas.

Categoría: Desarrollo Back End, Ruby on Rails, SEO

About apcano1978

Intento nadar entre frameworks, IDEs, SDKs… Algunos lo llaman Full stack developer, yo creo que es solo un eufemismo para decir «el que está en medio de todos los follones» Ruby on Rails y Angular … y bastante tengo …

Previous Post:Redireccionar todo a httpsCómo redireccionar todo el tráfico a https y al dominio raiz con Ruby on Rails
Next Post:Como hacer que aparezca el author box en tu child theme de Genesis Frameworkcomo configurar el author box en genesis framework

Reader Interactions

Deja una respuesta Cancelar la respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Ahora también en youtube

Ve al canal

Copyright © 2023 · Antonio Pérez · All Rights Reserved · Powered by Mai Theme