让我先描述一下我的情况:
我有一个博客网站,博客条目存储在MySQL数据库中,然后在用户访问网站时加载。每篇博客文章都有可用于搜索博客帖子的标签。我希望用户在使用Google等搜索引擎搜索帖子中的相关字词或帖子标题时能够将我的个人博客帖子作为结果。
例如,如果我的帖子标题为“在搜索引擎优化的URL中包含博客帖子标题?”,并且用户搜索“url seo中的博客帖子标题”,那么我希望我的帖子应该显示作为结果之一(比如在Google上搜索编程问题时,很多结果来自Stackoverflow)。
我猜我必须实现一个我创建动态的系统php页面名为post.php,其中同一页面用于显示各个博客帖子,其中包含该网址的标题。将post标签作为此页面的元关键字包含在内也很不错。但我不想在我的服务器上有每个博客文章的静态页面,所以我可以在网址中包含标题。如果你看看stackoverflow的方式,他们有个别帖子链接到网址,其中帖子的标题包含在网址本身。我想有类似的东西。所以我最后重写的问题是:
1)是否包含适合SEO的URL帖子?
2)使用动态页面加载来自MySQL的博客帖子数据对SEO不利,因为网站上没有实际存在的数据吗?
3)如何创建一个动态页面,用于在单击时显示单个博客帖子并在URL中具有博客文章标题(类似于Stackoverflow的作用)?奖励:如果可以将帖子标记作为超级关键字,这将是非常棒的!
答案 0 :(得分:2)
使用 robots.txt 链接到站点地图,您可以在其中列出所有网址。谷歌会找到它。
此外,但并不重要:使用 .htaccess 将php-url-crap神奇地转换为domain.ext / category / post-id.html或任何其他 SEO友好网址强>
更新: 好吧,我一般不信任XML。我的所有站点地图都是php生成的html文件,它们工作正常。
我建议您花一些时间观看或阅读有关“PHP MYSQL初学者CMS”主题的教程
答案 1 :(得分:1)
我会用这样的东西:
<!DOCTYPE HTML>
<!--
<?php
if(!isset($_GET['id']) && empty(trim($_GET['id']))) die('No post number specified!');
$conn = mysqli_connect('localhost', 'username', 'password', 'blog_db') or die('MySQL connection failed!');
$id = mysqli_real_escape_string($conn, preg_replace('/[^0-9]/', '', $_GET['id'])
$query = "SELECT * FROM `posts` WHERE `id` = '$id'";
$result = mysqli_query($conn, $query) or die('MySQL query failed!');
$post = mysqli_fetch_assoc($result) or die('Fetching content failed!');
$title = $post['title'];
$content = $post['content'];
$tags = explode(',', $post['tags']);
$author = $post['author'];
$time = $post['time'];
?>
-->
<html lang="en-US">
<head>
<meta charset="UTF-8" />
<title><?php echo htmlentities($title); ?> — By Blog</title>
<meta name="keywords" content="<?php echo implode(',', htmlentities($tags)); ?>" />
</head>
<body>
<div id="post">
<div id="post-content">
<?php echo htmlentities($post); ?>
</div>
<div id="post-tags">
<ul id="tags">
<?php foreach($tags as $tag) { ?>
<li>
<a href="/tagged/<?php echo urlencode($tag); ?>"><?php echo htmlentities($tag) ?></a>
</li>
<?php } ?>
</ul>
</div>
<div id="author">posted by <a href="/author/<?php echo urlencode($author); ?>"><?php echo htmlentities($author); ?></a></div>
</div>
</body>
</html>
您可能希望查看URL重写(查看此URL的URL:标题是可见的,但实际文件不存在),这将使其更具搜索引擎友好性。
此外,为访问者提供站点地图也很好,因为搜索引擎也会关注其中的链接。