Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 21803 байт. Загружен за: 1сек.
Проверяемая страница не запрещена в robots.txt.
Цепочка редиректов для файла robots.txt:
http://ryangarns.com/robots.txt
301 MovedPermanently
http://www.ryangarns.com/robots.txt
200 OK
Показать содержимое robots.txt
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="en">
<head>
<title>Ryan Garns</title>
<meta charset="utf-8" />
<meta name="description" content="Ryan Garns, and so forth...">
<meta name="keywords"
content="writing, writer, comedy, humor, satire, sketch comedy, Contraption, thriller, ebook, paperback, hardcover, novel, fiction">
<meta name="author" content="Ryan Garns">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<!-- Bootstrap -->
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css" rel="stylesheet"
integrity="sha384-9ndCyUaIbzAi2FUVXJi0CjmCapSmO7SnpJef0486qhLnuZ2cdeRhO02iuK6FUUVM" crossorigin="anonymous">
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/js/bootstrap.bundle.min.js"
integrity="sha384-geWF76RCwLtnZ8qwWowPQNguL3RmwHVBC9FhGdlKrxdiJJigb/j/68SIy3Te4Bkz"
crossorigin="anonymous"></script>
<!-- jQuery -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.0/jquery.min.js"></script>
<!-- Fonts -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Patua+One&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Voltaire&display=swap" rel="stylesheet">
<link
href="https://fonts.googleapis.com/css2?family=Crimson+Pro:ital,wght@0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap"
rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Bowlby+One+SC&display=swap" rel="stylesheet">
<link
href="https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@100;200;300;400;500;600;700;800;900&display=swap"
rel="stylesheet">
<!-- Test Fonts -->
<link href="https://fonts.googleapis.com/css2?family=Fascinate&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Poller+One&display=swap" rel="stylesheet">
<style>
@media (min-width: 1800px) {
.bookimg {
/* border: 1px solid lightgrey; */
/* border: 4px solid blue; */
max-height: 620px;
}
.announce {
font-size: 1.8rem;
}
}
@media (max-width: 1600px) {
.bookimg {
/* border: 1px solid lightgrey; */
/* border: 4px solid blue; */
max-height: 550px;
}
.announce {
font-size: 1.8rem;
}
}
@media (max-width: 1200px) {
.bookimg {
/* border: 1px solid lightgrey; */
/* border: 4px solid red; */
max-height: 550px;
}
.announce {
font-size: 1.5rem;
}
}
@media (max-width: 1000px) {
.bookimg {
/* border: 1px solid lightgrey; */
max-height: 350px;
}
.announce {
font-size: 1.2rem;
}
}
.bullet {
margin: 0 18px 0 18px;
}
.btn-secondary,
.btn-secondary:active,
.btn-secondary:visited {
color: whitesmoke;
background-color: steelblue !important;
}
.btn-secondary:hover {
color: whitesmoke;
background-color: silver !important;
}
/* .btn-warning, .btn-warning:active, .btn-warning:visited {
color: whitesmoke;
background-color: steelblue !important;
} */
.btn-warning:hover {
color: whitesmoke;
background-color: silver !important;
}
body {
font-family: 'Crimson Pro';
font-size: 1.6rem;
/* color: black; */
color: #353535;
/* background-color: whitesmoke; */
background-color: #EFECE7;
/* background: url('paper3.jpg'); */
/* background: url('paper.png'); */
background: url('assets/paper02.png');
/* background: url('paper.jpg'); */
/* background: url('paper2.jpg'); */
background-size: auto;
/* background-size: 100%; */
}
/* p {
quotes: "“" "”" "‘" "’";
} */
h1 {
/* font-family: 'Voltaire'; */
font-family: 'Bowlby One SC';
}
h1.booktitle {
/* font-family: 'Poller One', cursive; */
font-family: 'Bowlby One SC';
margin-top: 20px;
text-transform: uppercase;
color: orangered;
/* font-weight: bold; */
}
h1.comingsoon {
/* color: #353535; */
/* color: black; */
font-weight: bold;
}
h2 {
line-height: 1.5em;
}
h2.author {
/* font-family: 'Voltaire'; */
font-family: 'Bowlby One SC';
text-transform: uppercase;
color: orangered;
/* font-weight: bold; */
}
h3 {
margin-top: 30px;
font-style: italic;
}
a {
text-decoration: none;
}
.sitetitle {
font-family: 'Voltaire';
color: gray;
font-size: 1.5rem;
text-transform: uppercase;
}
.quote {
font-size: 1.7rem;
}
.tagline {
/* font-family: 'Slackey'; */
/* font-family: 'Londrina Solid'; */
/* font-family: 'Bowlby One SC'; */
/* font-family: 'Big Shoulders Display'; */
font-weight: 500;
/* font-size: larger; */
/* text-transform: uppercase; */
/* font-variant-caps: all-small-caps; */
line-height: 1.3em;
/* color: steelblue; */
}
.announce {
/* font-family: 'Bowlby One SC'; */
/* font-family: 'Slackey'; */
/* font-family: 'Crimson Pro'; */
/* text-transform: uppercase; */
/* font-size: 1.8rem; */
color: steelblue;
}
.boxshadow {
box-shadow: -8px 5px 10px 2px rgba(0, 0, 0, 0.4);
}
.txtshadow {
/* text-shadow: 2px 2px black; */
text-shadow: 2px 2px #353535;
}
.btnlbl {
font-family: 'Bowlby One SC';
font-size: x-large;
/* text-transform: uppercase; */
}
.pstart {
font-variant-caps: all-small-caps;
font-weight: bold;
}
/* The Modal (background) */
.modal {
display: none;
/* Hidden by default */
position: fixed;
/* Stay in place */
z-index: 1 !important;
/* Sit on top */
left: 0;
top: 0;
width: 100%;
/* Full width */
height: 100%;
/* Full height */
overflow: auto;
/* Enable scroll if needed */
background-color: rgb(0, 0, 0);
/* Fallback color */
background-color: rgba(0, 0, 0, 0.4);
/* Black w/ opacity */
}
/* Modal Content/Box */
.modal-content {
background-color: whitesmoke;
margin: 20% auto;
/* 15% from the top and centered */
padding: 3px 20px 20px 20px;
border: 1px solid #888;
width: 60%;
/* Could be more or less, depending on screen size */
}
/* The Close Button */
.close {
color: #aaa;
/* float: right; */
text-align: right;
font-size: 20px;
font-weight: bold;
}
.close:hover,
.close:focus {
color: gray;
text-decoration: none;
cursor: pointer;
}
#cover {
position: fixed;
height: 100%;
width: 100%;
top: 0;
left: 0;
background: #EFECE7;
z-index: 9999;
}
</style>
</head>
<body>
<div id="cover">
<div class="d-flex justify-content-center">
<div class="spinner-border text-secondary" role="status" style="margin-top: 200px;">
<span class="visually-hidden">Loading...</span>
</div>
</div>
</div>
<!-- NAVIGATION -->
<nav class="navbar sticky-top navbar-expand-lg border-bottom border-dark-subtle"
style="background: url('assets/paper02.png'); background-size: auto;">
<!-- <nav class="navbar sticky-top navbar-expand-lg bg-dark border-bottom border-bottom-dark" data-bs-theme="dark"> -->
<div class="container-fluid">
<a class="navbar-brand sitetitle" href="index.html">Ryan Garns</a>
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNavAltMarkup"
aria-controls="navbarNavAltMarkup" aria-expanded="false" aria-label="Toggle navigation">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse justify-content-end" id="navbarNavAltMarkup">
<div class="navbar-nav">
<a class="nav-link sitetitle" aria-current="page" href="index.html">Home</a>
<a class="nav-link sitetitle" href="#" id="myBtn">About</a>
</div>
</div>
</div>
</nav>
<!-- CONTENT -->
<div class="container-sm">
<div class="row">
</div>
<div class="row">
</div>
<div class="row">
<div class="col-lg-5 text-center">
<div class="row">
<div class="col-lg-12 d-flex align-items-center">
<img class="img-fluid mx-auto d-block bookimg boxshadow" src="assets/contraption-web-cover.png"
alt="Contraption book cover" />
</div>
</div>
<!-- <div class="row">
<div class="col-lg-12">
<div id="carouselExampleIndicators" class="carousel slide">
<div class="carousel-indicators">
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="0" class="active" aria-current="true" aria-label="Slide 1"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="1" aria-label="Slide 2"></button>
<button type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide-to="2" aria-label="Slide 3"></button>
</div>
<div class="carousel-inner">
<div class="carousel-item active">
<img src="foo04.jpg" class="d-block bookimg" alt="...">
</div>
<div class="carousel-item">
<img src="foo16.jpg" class="d-block bookimg" alt="...">
</div>
<div class="carousel-item">
<img src="foo18.jpg" class="d-block bookimg" alt="...">
</div>
</div>
<button class="carousel-control-prev" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="prev">
<span class="carousel-control-prev-icon" aria-hidden="true"></span>
<span class="visually-hidden">Previous</span>
</button>
<button class="carousel-control-next" type="button" data-bs-target="#carouselExampleIndicators" data-bs-slide="next">
<span class="carousel-control-next-icon" aria-hidden="true"></span>
<span class="visually-hidden">Next</span>
</button>
</div>
</div>
</div> -->
</div>
<div class="col-lg-7">
<div class="row text-center" style="margin-top: 20px;">
<h1 class="display-6 comingsoon"><em>Available Now!</em></h1>
<h1 class="display-5 announce">Hardcover <span class="bullet">⚬</span> Paperback <span
class="bullet">⚬</span> E-Book</h1>
</div>
<div class="row text-center">
<h1 class="display-1 txtshadow booktitle">Contraption</h1>
<p class="text-center tagline">
</p>
<h2>A Comic Thriller</h2>
<h4>by</h4>
<h2 class="display-4 txtshadow author">Ryan Garns</h2>
</div>
<div class="row" style="margin-top: 20px;">
<p class="text-center tagline">
</p>
</div>
<div class="row">
<div class="d-grid gap-2 d-md-flex justify-content-center">
<a href="https://www.amazon.com/dp/B0CN157STY" target="_blank" role="button"
class="btn btn-lg btn-warning btnlbl">Buy on Amazon</a>
<a href="assets/ContraptionSample.pdf" target="_blank" role="button"
class="btn btn-lg btn-secondary btnlbl">Read First Chapter</a>
</div>
</div>
</div>
</div>
<div class="row">
</div>
<div class="row" style="margin-top: 20px;">
<p class="quote text-center" style="font-weight: bold; font-style: italic;">
A fast and funny debut novel with a MacGuffin that messes with your mind.
</p>
</div>
<div class="row">
<div class="col-lg-12" style="text-align: justify;">
<p>
<span class="pstart">Shawn Riley is a</span> stand-up comedian in stagnation. He’s divorced, he’s
middle-aged, and his career has all the momentum of a millennial working a stick shift. It turns out
he’s also the perfect decoy for anyone looking to throw a bunch of bad guys off their trail. So
before you can say “tin foil hat,” Shawn finds himself knee-deep in spies, hitmen, and cultists
seeking a mysterious weapon that tampers with the human brain. Shawn is accustomed to life on the
road but not on the lam, so he’ll have to survive on only rapid-fire one-liners and his rocky
relationship with an attractive reporter.
</p>
<p>
So what’s this book like? It’s like Alfred Hitchcock meets Albert Brooks. Or <em>Killing Floor</em>
meets <em>Right Ho, Jeeves</em>. Or maybe it’s <em>Naked Lunch</em> meets <em>Little Women</em>, I
don’t know. Look, you’ve read this far, so admit you’re interested and pick up a copy of
<em>Contraption</em>.
</p>
<!-- <span class="quote"><em>“Purchase-enticing quote goes here!”</em> —Ryan Garns</span> -->
</div>
</div>
<div class="row">
</div>
<div class="row">
<div class="col-lg-3"></div>
<div class="col-lg-6">
<h1>Contact Ryan</h1>
<form action="index.php" method="post">
<input type="hidden" name="sendmsg" value="true"/>
<div class="mb-3">
<label for="inputEmail" class="form-label">Your Email Address:</label>
<input type="email" class="form-control" value="" id="inputEmail" aria-describedby="emailHelp" name="email" maxlength="100">
</div>
<!-- <div class="mb-3">
<label>I Am A (Choose One):</label>
<input type="radio" class="btn-check" name="options-base" id="option1" autocomplete="off" value="">
<label class="btn" for="option1"></label>
<input type="radio" class="btn-check" name="options-base" id="option2" autocomplete="off" value="">
<label class="btn" for="option2"></label>
<input type="radio" class="btn-check" name="options-base" id="option3" autocomplete="off" value="">
<label class="btn" for="option3"></label>
</div> -->
<div class="mb-3">
<label for="inputTextArea" class="form-label">Message (Max 1,200 characters):</label>
<textarea class="form-control" id="inputTextArea" rows="4" name="message" maxlength="1200"></textarea>
</div>
<button type="submit" class="btn btn-secondary btnlbl">Submit</button>
</form>
</div>
<div class="col-lg-3"></div>
</div>
<div class="row">
</div>
<div class="row">
<div class="col-xs-12 text-center" style="margin: 20px;">
Copyright © 2026 by Ryan Garns
</div>
</div>
</div>
<!-- The Modal -->
<div id="myModal" class="modal">
<!-- Modal content -->
<div class="modal-content">
<span class="close">×</span>
<h2>About Ryan Garns</h2>
<p>
Ryan Garns has spent much of his life lurking among polite society, never daring to reveal his twisted
ambitions as a comedy writer. Nevertheless, he has been known to write, produce, and direct sketch
comedy shows for the stage in Los Angeles. He has also cut his teeth performing stand-up material and
writing humor columns, stage plays, and screenplays. <em>Contraption</em> is his debut novel, and he is
already writing his next called <em>Untitled 80,000-Word Hole To Fill</em>.
</p>
<p>
</p>
<p>
<a href="https://twitter.com/ryangarns" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor"
class="bi bi-twitter-x" viewBox="0 0 16 16">
<path
d="M12.6.75h2.454l-5.36 6.142L16 15.25h-4.937l-3.867-5.07-4.425 5.07H.316l5.733-6.57L0 .75h5.063l3.495 4.633L12.601.75Zm-.86 13.028h1.36L4.323 2.145H2.865l8.875 11.633Z" />
</svg>
</a>
<a href="https://www.facebook.com/ryan.garns/" target="_blank">
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor"
class="bi bi-facebook" viewBox="0 0 16 16">
<path
d="M16 8.049c0-4.446-3.582-8.05-8-8.05C3.58 0-.002 3.603-.002 8.05c0 4.017 2.926 7.347 6.75 7.951v-5.625h-2.03V8.05H6.75V6.275c0-2.017 1.195-3.131 3.022-3.131.876 0 1.791.157 1.791.157v1.98h-1.009c-.993 0-1.303.621-1.303 1.258v1.51h2.218l-.354 2.326H9.25V16c3.824-.604 6.75-3.934 6.75-7.951z" />
</svg>
</a>
<!--
<a href="">
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="currentColor"
class="bi bi-envelope" viewBox="0 0 16 16">
<path
d="M0 4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V4Zm2-1a1 1 0 0 0-1 1v.217l7 4.2 7-4.2V4a1 1 0 0 0-1-1H2Zm13 2.383-4.708 2.825L15 11.105V5.383Zm-.034 6.876-5.64-3.471L8 9.583l-1.326-.795-5.64 3.47A1 1 0 0 0 2 13h12a1 1 0 0 0 .966-.741ZM1 11.105l4.708-2.897L1 5.383v5.722Z" />
</svg>
</a> -->
</p>
</div>
</div>
<!-- MODAL LOGIC -->
<script>
// Get the modal
var modal = document.getElementById("myModal");
// Get the button that opens the modal
var btn = document.getElementById("myBtn");
// Get the <span> element that closes the modal
var span = document.getElementsByClassName("close")[0];
// When the user clicks the button, open the modal
btn.onclick = function () {
modal.style.display = "block";
}
// When the user clicks on <span> (x), close the modal
span.onclick = function () {
modal.style.display = "none";
}
// When the user clicks anywhere outside of the modal, close it
window.onclick = function (event) {
if (event.target == modal) {
modal.style.display = "none";
}
}
$(window).on('load', function () {
$("#cover").hide();
});
</script>
</body>
</html>