Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Кол-во редиректов для файла robots.txt 3 слишком большое! Это может вызывать затруднение при индексации поисковыми роботами!
Проверяемая страница не запрещена в robots.txt.
Цепочка редиректов для файла robots.txt:
http://rustadventure.dev/robots.txt
301 MovedPermanently
https://rustadventure.dev/robots.txt
301 MovedPermanently
https://www.rustadventure.dev/robots.txt
200 OK
Показать содержимое robots.txt
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><link rel="preconnect" href="https://fonts.googleapis.com"><link rel="preconnect" href="https://fonts.gstatic.com" crossorigin="crossorigin"><link rel="apple-touch-icon" sizes="180x180" href="/static/apple-touch-icon.png"><link rel="icon" href="/static/favicon.ico" sizes="any"><link rel="mask-icon" href="/static/safari-pinned-tab.svg"><meta name="msapplication-TileColor" content="#da532c"><meta name="theme-color" content="#1fa9f4"><link href="https://fonts.googleapis.com/css2?family=Outfit:wght@100..900&display=swap" rel="stylesheet"><script defer="true" src="https://cdn.jsdelivr.net/npm/@mux/mux-player"></script><!><link rel="modulepreload" href="/pkg/rust_adventure_wasm.o9jV-aSGEhKVKcxAr2uSdQ.js" crossorigin="TxWc4QIJV8ZLgqSZmZkazw"><link rel="preload" href="/pkg/rust_adventure_wasm.iV4jeFt7FvGEeXayFazNTQ.wasm" as="fetch" type="application/wasm" crossorigin="TxWc4QIJV8ZLgqSZmZkazw"><script type="module" nonce="TxWc4QIJV8ZLgqSZmZkazw">((root, pkg_path, output_name, wasm_output_name) => {
let MOST_RECENT_CHILDREN_CB = [];
function idle(c) {
if ("requestIdleCallback" in window) {
window.requestIdleCallback(c);
} else {
c();
}
}
async function hydrateIslands(rootNode, mod) {
async function traverse(node) {
if (node.nodeType === Node.ELEMENT_NODE) {
const tag = node.tagName.toLowerCase();
if(tag === 'leptos-island') {
const children = [];
const id = node.dataset.component || null;
await hydrateIsland(node, id, mod);
for(const child of node.children) {
await traverse(child, children);
}
} else {
if (tag === 'leptos-children') {
MOST_RECENT_CHILDREN_CB.push(node.$$on_hydrate);
for(const child of node.children) {
await traverse(child);
};
// un-set the "most recent children"
MOST_RECENT_CHILDREN_CB.pop();
} else {
for(const child of node.children) {
await traverse(child);
};
}
}
}
}
await traverse(rootNode);
}
async function hydrateIsland(el, id, mod) {
const islandFn = mod[id];
if (islandFn) {
const children_cb = MOST_RECENT_CHILDREN_CB[MOST_RECENT_CHILDREN_CB.length-1];
if (children_cb) {
children_cb();
}
const res = islandFn(el);
if (res && res.then) {
await res;
}
} else {
console.warn(`Could not find WASM function for the island ${id}.`);
}
}
idle(() => {
import(`${root}/${pkg_path}/${output_name}.js`)
.then(mod => {
mod.default({module_or_path: `${root}/${pkg_path}/${wasm_output_name}.wasm`}).then(() => {
mod.hydrate();
hydrateIslands(document.body, mod);
});
window.__hydrateIsland = (el, id) => hydrateIsland(el, id, mod);
})
});
})
("", "pkg", "rust_adventure_wasm.o9jV-aSGEhKVKcxAr2uSdQ", "rust_adventure_wasm.iV4jeFt7FvGEeXayFazNTQ");</script><link id="leptos" rel="stylesheet" href="/pkg/rust_adventure_wasm.qnnuFoFMAsuh5NrMexrlWQ.css"><!--HEAD--><title>Rust Adventure</title></head><body><leptos-island data-component="UserLoginProvider_3249811454228645231"><leptos-children><div><header class="relative"><div class="bg-transparent py-6"><nav aria-label="Global" class="relative max-w-7xl mx-auto flex items-center justify-between px-4 sm:px-6"><div class="flex items-center flex-1"><div class="flex items-center justify-between w-full md:w-auto"><a href="/" class="flex items-center space-x-2 font-semibold tracking-tight leading-none"><div class="w-10"><img src="/static/img/ferris/ferris.svg"></div><div class="text-slate-800 dark:text-white"><div>Rust Adventure</div><div class="text-base font-light">with Chris Biscardi</div></div></a><div class="-mr-2 flex items-center md:hidden"></div></div><div class="hidden space-x-8 md:flex md:ml-10"><a href="/articles" class="text-base font-medium text-slate-800 dark:text-white dark:hover:text-pink-200">Articles</a><a href="/workshops" class="text-base font-medium text-slate-800 dark:text-white dark:hover:text-pink-200">Workshops</a><a href="/pricing" class="text-base font-medium text-slate-800 dark:text-white dark:hover:text-pink-200">Pricing</a><!></div></div><!--s-1-o--><p>Loading...</p><!--s-1-c--></nav></div></header><main><div><!--s-2-o--><div></div><!--s-2-c--></div></main></div></leptos-children></leptos-island></body></html><template id="1-f"><div class="hidden md:flex md:items-center md:space-x-6"><a href="/login" class="text-base font-medium text-slate-800 dark:text-white dark:hover:text-pink-200">Log in</a></div></template><script nonce="TxWc4QIJV8ZLgqSZmZkazw">(function() { let id = "1-";let open = undefined;let close = undefined;let walker = document.createTreeWalker(document.body, NodeFilter.SHOW_COMMENT);while(walker.nextNode()) {if(walker.currentNode.textContent == `s-${id}o`){ open=walker.currentNode; } else if(walker.currentNode.textContent == `s-${id}c`) { close = walker.currentNode;}}let range = new Range(); range.setStartBefore(open); range.setEndBefore(close);range.deleteContents(); let tpl = document.getElementById(`${id}f`); close.parentNode.insertBefore(tpl.content.cloneNode(true), close);close.remove();})()</script><template id="2-f"><div class="text-gray-400">404</div></template><script nonce="TxWc4QIJV8ZLgqSZmZkazw">(function() { let id = "2-";let open = undefined;let close = undefined;let walker = document.createTreeWalker(document.body, NodeFilter.SHOW_COMMENT);while(walker.nextNode()) {if(walker.currentNode.textContent == `s-${id}o`){ open=walker.currentNode; } else if(walker.currentNode.textContent == `s-${id}c`) { close = walker.currentNode;}}let range = new Range(); range.setStartBefore(open); range.setEndBefore(close);range.deleteContents(); let tpl = document.getElementById(`${id}f`); close.parentNode.insertBefore(tpl.content.cloneNode(true), close);close.remove();})()</script><script nonce="TxWc4QIJV8ZLgqSZmZkazw">__RESOLVED_RESOURCES=[];__SERIALIZED_ERRORS=[];__PENDING_RESOURCES=[0,];__RESOURCE_RESOLVERS=[];</script><script nonce="TxWc4QIJV8ZLgqSZmZkazw">__RESOLVED_RESOURCES[0] = "{\"Ok\":null}";</script><script nonce="TxWc4QIJV8ZLgqSZmZkazw">__INCOMPLETE_CHUNKS=[];</script>