Добавление Sitemap в Laravel
Алекса

Добавление Sitemap в Laravel

Главная > Блог > Статья

Добавление Sitemap в Laravel

{"ops":[{"insert":"Сегодня я расскажу вам, как произвести один из этапов оптимизации вашего сайта на Laravel. Для оптимизации вашего сайта вам может понадобиться "},{"attributes":{"bold":true},"insert":"Sitemap"},{"insert":" или карта сайта. Нужна она для того, чтобы "},{"attributes":{"bold":true},"insert":"Google"},{"insert":" или "},{"attributes":{"bold":true},"insert":"Яндекс"},{"insert":" сообщали своим поисковым роботам обо всех ваших страницах и их URL-адресах для их индексирования. \n"},{"attributes":{"bold":true},"insert":"Sitemap"},{"insert":" можно сгенерировать несколькими способами. Вы можете использовать "},{"attributes":{"bold":true},"insert":"Sitemap"},{"insert":" генератор, если у вас статичный сайт и данные на нем не меняются, например "},{"attributes":{"bold":true},"insert":"XML-Sitemap"},{"insert":".com или любой другой. Если же у вас динамический сайт вы можете воспользоваться специальным пакетом тут или сделать sitemap самим, как будет описано ниже.\n"}]}

{"ops":[{"insert":"Так как на большинстве сайтов существуют как динамические так и статические страницы, я рекомендую, для начала воспользоваться генератором и создать sitemap.html, который мы потом доработаем.\nРасскажу на примере "},{"attributes":{"bold":true},"insert":"XML-Sitemap.com"},{"insert":", переходим по ссылке, вбиваем URL своего сайта, кликаем по кнопке START , ждем пока идет процесс создания sitemap в зависимости от скорости передачи данных и размера сайта процесс может занять от нескольких секунд до 10 минут, когда процесс завершен, кликаем по кнопке"},{"attributes":{"bold":true},"insert":" VIEV SITEMAP DETALIS"},{"insert":", затем по кнопке"},{"attributes":{"bold":true},"insert":" DOWNLOAD YOUR XML SITEMAP FILE"},{"insert":"\nполучаем файл sitemap.html.\nДля Laravel недостаточно просто закинуть этот файл в папку вашего сайта поисковый робот просто не сможет его прочитать, ведь все страницы на Laravel имеют определенный путь заданный в Route.\nПоэтому первое, что мы делаем это идем в routes/web.php и создаем новый маршрут, например к контроллеру PostController:\nRoute::get('/sitemap.hml', 'PostController@sitemap')->name('sitemap.hml');"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"Далее идем в"},{"attributes":{"bold":true},"insert":" PostController "},{"insert":"и создаем функцию, добавляя в нее динамические элементы, например посты, категории, теги:\npublic function sitemap(){"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" $posts =Post::all();"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" $categories = Category::all();"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" $tags =Tag::all();"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" return view('posts.sitemap', compact('posts', 'categories', 'tags'));"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"Теперь в папку views/posts добавляем страницу "},{"attributes":{"bold":true},"insert":"sitemap.blade.php"},{"insert":" и копируем туда содержимое файла sitemap.html, остается только немного его подредактировать. Во первых изменяем верхнюю строку, ее нужно поместить в php, выше добавляем еще строку, для того, чтобы установить тип содержимого: \n{{ Request::header('Content-Type : text/xml') }}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"@php echo '<?xml version=\"1.0\" encoding=\"UTF-8\"?>';@endphp"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"Потом выбираем страницы, например постов, удаляем и обрабатываем их в цикле, получаем примерно следующее:\n@foreach($posts as $post)"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"<url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <loc>https://vashlogin.ru/post/{{$post->slag}}</loc>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <lastmod>{{ $post->updated_at->tz('GMT')->toAtomString() }}</lastmod>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <priority>0.80</priority>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"</url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"@endforeach"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"Аналогично обрабатываем категории и теги, а при необходимости и другие страницы. Статичные страницы оставляем без изменения.\nВ итоге получим примерно такой sitemap.blade.php:\n{{ Request::header('Content-Type : text/xml') }}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"@php echo '<?xml version=\"1.0\" encoding=\"UTF-8\"?>';@endphp"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"<urlset"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" xmlns=\"http://www.sitemaps.org/schemas/sitemap/0.9\""},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\""},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" xsi:schemaLocation=\"http://www.sitemaps.org/schemas/sitemap/0.9"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd\">"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <loc>https:///vashlogin.ru.ru/</loc>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <lastmod>2022-01-03T11:45:35+00:00</lastmod>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <priority>1.00</priority>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" </url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <loc>https:///vashlogin.ru.ru/ruls</loc>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <lastmod>2022-01-03T11:45:35+00:00</lastmod>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <priority>0.80</priority>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" </url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" ........."},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" @foreach($posts as $post)"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <loc>https://vashlogin.ru/post/{{$post->slag}}</loc>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <lastmod>{{ $post->updated_at->tz('GMT')->toAtomString() }}</lastmod>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <priority>0.80</priority>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" </url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" @endforeach"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" ..........."},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" @foreach($categories as $category)"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <loc>https://vashlogin.ru/categ/{{$category->slag}}</loc>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <lastmod>{{ $category->updated_at->tz('GMT')->toAtomString() }}</lastmod>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <priority>0.64</priority>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" </url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" @endforeach"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" ........"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" @foreach($tags as $tag)"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <loc>https://vashlogin.ru/tag/{{$tag->slag}}</loc>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <lastmod>{{ $tag->updated_at->tz('GMT')->toAtomString() }}</lastmod>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <priority>0.64</priority>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" </url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" @endforeach"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"..........."},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <loc>https://vashlogin.ru/forg</loc>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <lastmod>2022-01-03T11:45:35+00:00</lastmod>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" <priority>0.64</priority>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" </url>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" ............"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"</urlset>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"\n"}]}

{"ops":[{"insert":"И нам остается добавить в "},{"attributes":{"bold":true},"insert":"robots.txt"},{"insert":" (хранится в папке "},{"attributes":{"bold":true},"insert":"public"},{"insert":") строку и он станет выглядеть примерно так: \nUser-agent: *"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"Disallow: /login"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"Sitemap: https://vashlogin.ru/sitemap"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"Последний штрих, добавляем в"},{"attributes":{"bold":true},"insert":" head"},{"insert":" главной страницы:\n<link href=\"{{ url('sitemap.xml') }}\" rel='alternate' title='sitemap' type='application/rss+xml'/>"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"И все готово.\n\nЖду ваших комментариев :)\n"}]}

Другие статьи этого автора

Алекса
07.06.2023

Дизайн поисковой строки (продолжение2)

Алекса
07.06.2023

Дизайн поисковой строки (продолжение)

Алекса
01.06.2023

Создание модального окна в Laravel с помощью Livewire

Алекса

___________________

Буду благодарна за оказание любой финансовой помощи на развитие сайта

___________________

___________________

___________________