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

{"ops":[{"attributes":{"size":"18px","color":"black"},"insert":"Сегодня я расскажу вам, как произвести один из этапов оптимизации вашего сайта на Laravel. Для оптимизации вашего сайта вам может понадобиться"},{"attributes":{"size":"18px"},"insert":" "},{"attributes":{"size":"18px","color":"red","bold":true},"insert":"Sitemap"},{"attributes":{"size":"18px"},"insert":" "},{"attributes":{"size":"18px","color":"black"},"insert":"или карта сайта. Нужна она для того, чтобы Google или Яндекс сообщали своим поисковым роботам обо всех ваших страницах и их URL-адресах для их индексирования. "},{"insert":"\n"},{"attributes":{"size":"18px","color":"black"},"insert":"Sitemap можно сгенерировать несколькими способами. Вы можете использовать Sitemap генератор, если у вас статичный сайт и данные на нем не меняются, например"},{"attributes":{"size":"18px","color":"#0a0a0a"},"insert":" "},{"attributes":{"bold":true,"size":"18px","color":"blue","background":"white","link":"https://www.xml-sitemaps.com/"},"insert":"XML-Sitemap.com"},{"attributes":{"color":"black"},"insert":" "},{"attributes":{"color":"black","size":"18px"},"insert":"или любой другой. Если же у вас динамический сайт вы можете воспользоваться специальным пакетом "},{"attributes":{"bold":true,"color":"blue","size":"18px","link":"https://github.com/spatie/laravel-sitemap"},"insert":"тут"},{"attributes":{"color":"black"},"insert":" "},{"attributes":{"color":"black","size":"18px"},"insert":"или сделать "},{"attributes":{"color":"black","size":"18px","bold":true},"insert":"sitemap"},{"attributes":{"color":"black","size":"18px"},"insert":" самим, как будет описано ниже."},{"insert":"\n"}]}

{"ops":[{"attributes":{"size":"18px","color":"black"},"insert":"Так как на большинстве сайтов существуют как динамические так и статические страницы, я рекомендую, для начала воспользоваться генератором и создать "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"sitemap.html,"},{"attributes":{"size":"18px","color":"black"},"insert":" который мы потом доработаем."},{"insert":"\n"},{"attributes":{"size":"18px","color":"black"},"insert":"Расскажу на примере "},{"attributes":{"bold":true,"size":"18px","color":"blue","background":"white","link":"https://www.xml-sitemaps.com/"},"insert":"XML-Sitemap.com"},{"attributes":{"size":"18px"},"insert":", "},{"attributes":{"size":"18px","color":"black"},"insert":"переходим по ссылке, вбиваем "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"URL"},{"attributes":{"size":"18px","color":"black"},"insert":" своего сайта, кликаем по кнопке"},{"attributes":{"size":"18px","color":"white","background":"blue"},"insert":" "},{"attributes":{"size":"18px","color":"white","background":"blue","bold":true},"insert":"START "},{"attributes":{"size":"18px","bold":true},"insert":", "},{"attributes":{"size":"18px","color":"black"},"insert":"ждем пока идет процесс создания "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"sitemap "},{"attributes":{"size":"18px","color":"black"},"insert":"в зависимости от скорости передачи данных и размера сайта процесс может занять от нескольких секунд до 10 минут, когда процесс завершен, кликаем по кнопке"},{"attributes":{"size":"18px"},"insert":" "},{"attributes":{"size":"18px","color":"white","background":"blue","bold":true},"insert":"VIEV SITEMAP DETALIS"},{"attributes":{"size":"18px","color":"black","bold":true},"insert":", "},{"attributes":{"size":"18px","color":"black"},"insert":"затем по кнопке"},{"attributes":{"size":"18px"},"insert":" "},{"attributes":{"size":"18px","color":"white","background":"blue","bold":true},"insert":"DOWNLOAD YOUR XML SITEMAP FILE"},{"insert":"\n"},{"attributes":{"size":"18px","color":"black"},"insert":"получаем файл "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"sitemap.html."},{"insert":"\n"},{"attributes":{"size":"18px","color":"black"},"insert":"Для Laravel недостаточно просто закинуть этот файл в папку вашего сайта поисковый робот просто не сможет его прочитать, ведь все страницы на Laravel имеют определенный путь заданный в "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"Route."},{"insert":"\n"},{"attributes":{"size":"18px","color":"black"},"insert":"Поэтому первое, что мы делаем это идем в "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"routes/web.php "},{"attributes":{"size":"18px","color":"black"},"insert":"и создаем новый маршрут, например к контроллеру "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"PostController:"},{"insert":"\nRoute::get('/sitemap.hml', 'PostController@sitemap')->name('sitemap.hml');"},{"attributes":{"code-block":true},"insert":"\n"},{"attributes":{"size":"18px","color":"black"},"insert":"Далее идем в "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"PostController "},{"attributes":{"size":"18px","color":"black"},"insert":"и создаем функцию, добавляя в нее динамические элементы, например посты, категории, теги:"},{"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"},{"attributes":{"size":"18px","color":"black"},"insert":"Теперь в папку "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"views/posts "},{"attributes":{"size":"18px","color":"black"},"insert":"добавляем страницу "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"sitemap.blade.php "},{"attributes":{"size":"18px","color":"black"},"insert":"и копируем туда содержимое файла "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"sitemap.html, "},{"attributes":{"size":"18px","color":"black"},"insert":"остается только немного его подредактировать. Во первых изменяем верхнюю строку, ее нужно поместить в "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"php, "},{"attributes":{"size":"18px","color":"black"},"insert":"выше добавляем еще строку, для того, чтобы установить тип содержимого"},{"attributes":{"size":"18px","color":"black","bold":true},"insert":": "},{"insert":"\n{{ Request::header('Content-Type : text/xml') }}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"@php echo '';@endphp"},{"attributes":{"code-block":true},"insert":"\n"},{"attributes":{"size":"18px","color":"black"},"insert":"Потом выбираем страницы, например постов, удаляем и обрабатываем их в цикле, получаем примерно следующее:"},{"insert":"\n@foreach($posts as $post)"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":""},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" https://vashlogin.ru/post/{{$post->slag}}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" {{ $post->updated_at->tz('GMT')->toAtomString() }}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" 0.80"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":""},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"@endforeach"},{"attributes":{"code-block":true},"insert":"\n"},{"attributes":{"size":"18px","color":"black"},"insert":"Аналогично обрабатываем категории и теги, а при необходимости и другие страницы. Статичные страницы оставляем без изменения."},{"insert":"\n"},{"attributes":{"size":"18px","color":"black"},"insert":"В итоге получим примерно такой "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"sitemap.blade.php:"},{"insert":"\n{{ Request::header('Content-Type : text/xml') }}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"@php echo '';@endphp"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":""},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" "},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" https:///vashlogin.ru.ru/"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" 2022-01-03T11:45:35+00:00"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" 1.00"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" "},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" "},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" https:///vashlogin.ru.ru/ruls"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" 2022-01-03T11:45:35+00:00"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" 0.80"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" "},{"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":" "},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" https://vashlogin.ru/post/{{$post->slag}}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" {{ $post->updated_at->tz('GMT')->toAtomString() }}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" 0.80"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" "},{"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":" "},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" https://vashlogin.ru/categ/{{$category->slag}}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" {{ $category->updated_at->tz('GMT')->toAtomString() }}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" 0.64"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" "},{"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":" "},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" https://vashlogin.ru/tag/{{$tag->slag}}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" {{ $tag->updated_at->tz('GMT')->toAtomString() }}"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" 0.64"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" "},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" @endforeach"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"..........."},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" "},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" https://vashlogin.ru/forg"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" 2022-01-03T11:45:35+00:00"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" 0.64"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" "},{"attributes":{"code-block":true},"insert":"\n"},{"insert":" ............"},{"attributes":{"code-block":true},"insert":"\n"},{"insert":""},{"attributes":{"code-block":true},"insert":"\n"},{"insert":"\n"}]}

{"ops":[{"attributes":{"size":"18px","color":"black"},"insert":"И нам остается добавить в "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"robots.txt"},{"attributes":{"size":"18px","color":"black"},"insert":" (хранится в папке"},{"attributes":{"size":"18px","color":"black","bold":true},"insert":" public"},{"attributes":{"size":"18px","color":"black"},"insert":") строку и он станет выглядеть примерно так: "},{"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"},{"attributes":{"size":"18px","color":"black"},"insert":"Последний штрих, добавляем в "},{"attributes":{"size":"18px","color":"black","bold":true},"insert":"head"},{"attributes":{"size":"18px","color":"black"},"insert":" главной страницы:"},{"insert":"\n"},{"attributes":{"code-block":true},"insert":"\n"},{"attributes":{"size":"18px","color":"black"},"insert":"И все готово."},{"insert":"\n\n"},{"attributes":{"size":"18px","color":"black"},"insert":"Жду ваших комментариев :)"},{"insert":"\n"}]}