Voy a guiarte en el proceso para añadir de forma sencilla y en muy pocos pasos el archivo robots.txt a tu app de Ruby on Rails. Es un proceso muy sencillo que te ayudará a hacer que tu app sea mucho más profesional y gestiones mejor como los bots indexan e investigan tu página web.
No voy a enrollarme con preliminares, vamos a llenarnos las manos de tierra y a picar (código, claro está)
1.- Generar la ruta en routes.rb
Efectivamente, primero, como de costumbre, generaremos la ruta en el archivo routes.rb que llevará al archivo robots.txt:
# Archivo config/routes.rb get '/robots.:format' => 'welcome#robots'
Aquí solo una apreciación, yo suelo situarlo dentro de la carpeta welcome, que es la que suelo generar para generar vistas abiertas al público estándar como el sobre nosotros o las condiciones legales de la web, aunque puedes usar la que quieras ten en cuenta que debes ser consistente a la hora de situar el controlador y demás, como veremos ahora.
2.- Ajustar nuestro robots.txt en su controlador
Ahora vamos a hacer que el archivo robots solo responda al formato .txt en el controlador:
# app/controllers/welcome_controller.rb def robots respond_to :text expires_in 6.hours, public: true end
3.- Crear la vista y generar el contenido del archivo robots.txt
#app/views/robots.text.erb <% if Rails.env.production? %> User-Agent: * Allow: / Disallow: /admin Sitemap: http://www.yourdomain.com/sitemap.xml <% else %> User-Agent: * Disallow: / <% end %>
Básicamente lo que hemos hecho aquí es que cuando estemos en desarrollo queremos que bloquee todos los bots, en producción haremos que solo bloquee la carpeta admin, que es donde tendremos todo el área de administración de la web, la cual no tiene demasiado sentido indexar y demás.
Ya solo te falta un pequeño detalle, en la carpeta public de tu aplicación de rails hay un archivo robots.txt que debes eliminar, de esta manera evitarás cualquier posible conflicto.
Y así de sencillo es crear tu archivo robots.txt para tu app hecha con Ruby on Rails, espero vuestra avalancha de comentarios al respecto.
Deja una respuesta