如果你有钱,一切不是问题,如果没有,大多站长会在源码网站下载一些免费或开源的程序来建站,怎么样选择一个良好SEO优化的网站程序,本文将为你解答。
一个良好SEO的网站程序,要满足以下几点:
第一,DIV+CSS布局。使用DIV+CSS布局,使内容与表现分离,页面会更小,更容易向搜索引擎展示内容。我们知道页面大小超过一定量,搜索引擎会去掉多余的部分,这也就是为什么我们看到一些网站的快照只显示部分内容。典型的例子就是新浪博客了,虽然新浪博客的权重非常高,但是页面大小仍然是新浪博客SEO的一大败笔。
第二,可以自定义的网站头标签。要求每一个页面都能够灵活自定义网站头标签,这些标签最起码要包括:,
和。网站标题,描述和关键字,这三者将告诉用户和搜索引擎该页面的主题,通过关键词分析,书写合适的标题和描述往往给页面带来更好的排名。
第三,静态页面生成技术。虽然搜索引擎都说自己良好的支持动态页面,然而静态页面浏览速度更快,搜索引擎更易收录等原因,站长们更愿意选择一个能够生成静态页的网站程序。以内容为主导的网站几乎都采用静态页面技术,比如网易新闻,新浪新闻,A5,ChinaZ等。
第四,相关内容。一个良好SEO的网站程序必须有相关内容模块。wordpress一个非常热门的插件就是相关内容插件。在文章页面中显示与之相关的主题以及主题页面链接不仅可以更加的突出本页面的主题,还能增加相关主题页面的权重。相关内容模块可以说是网站内链建设最简单,最有效的方法。
第五,规范化的网址。对于同一个页面,尽量避免不同的URL指向它。不同URL会分散页面的权重。
一、数据库表清理
1 wordpress数据库表
wp_commentmeta: 用于保存评论的元信息,在将评论放入回收站等 *** 作时会将数据放入此表,Akismet等插件也会生成此表的数据。此表不太重要
wp_comments: 用于保存评论信息的表
wp_links: 用于保存用户输入到Wordpress中的链接(通过Link Manager)的表
wp_options: 用于保存Wordpress相关设置、参数的表,里面包括了大量的重要信息
wp_postmeta: 用于保存文章的元信息(meta)的表
wp_posts: 用于保存你所有的文章相关信息的表,非常的重要。一般它存储的数据是最多的
wp_terms: 文章和链接分类以及文章的tag分类可以在表里找到
wp_term_relationships: 日志与wp_terms中的类别与标签联合起来共同存储在wp_terms_relationships表中。类别相关链接也存储在wp_terms_relationships中
wp_term_taxonomy: 该表格对wp_terms表中的条目分类(类别、链接以及标签)进行说明
wp_usermeta : 用于保存用户元信息(meta)的表
wp_users:用于保存Wordpress使用者的相关信息的表
2 清理涉及到的表
更换主题,删除插件会在将数据留在数据库中,在卸载后无法被清理。除此之外,在由于一些 *** 作,会导致数据库的冗余,比如已经没有的评论,不应该在评论元数据表中有记录,由于没有外键的约束,这些记录没有被删除,会造成数据的冗余。本文的宗旨是删除掉不必要的数据库内容,提高wordpress的效率
在此,主要涉及到一下几张表:wp_options,wp_posts,wp_postmeta,wp_commentmeta
注意清理之前进行备份
3 wp_options的清理
wp_options 这个数据表是wordpress设置的全局数据,这个表会经常有数据膨胀。主要原因是:
(1)以前用过的一些插件、主题在删除之后没有进行设置的清理,造成残留数据
(2)占用数据的大户–RSS缓存,后台的数据调用竟然会放到数据库里面
处理方法:
①网上对RSS处理方法有两种一个是修改后台的文件直接不去调用,这个是我不喜欢的毕竟修改了程序,其实这个很容
易忘记WP升级是太频繁的哪次更新覆盖了新文件还是照样缓存另外一种就是在配置文件里面填写define(‘MAGPIE_CACHE_ON’, ’0′); 这个是管用的,添加以后后台首页的调用明显变慢
②使用插件clean options
③费力但是简单的清除方法:删除wp_options表,会删除一些设置,需要重新设置wordpress,推荐新手使用
TRUNCATE TABLE wp_options;
4wp_posts清理
wordpress的文章有好多:wp_posts表中包括
文章种类:文章、修订版本、页面、文章的附件、菜单
其中每种文章又会有很多状态:继承、发布、私有、草稿、自动草稿、回收站中
冗余原因:
(1)在博主写文章的时候,系统会保存很多的中间状态,在文章发布之后其很多的中间状态没有被删除
解决办法:
①使用插件:WP Cleaner,使用插件的好处就是有保护机制,无论怎么 *** 作都无法影响已发布的贴子,请放心使用
②自己动手删除,数据库中的标志删除文章,注意备份
说明:wp_posts的重要字段含义:
post_type:文章类型,post表示为文章,revision表示为修订版本,page为页面,attachment是文章的附件信息,nav_menu_item是菜单。这里我们需要的是文章、页面、和菜单
post_status:文章状态,inherit是继承的附件和文章的附带信息,publish是已经发布、private是私有的,draft是草稿,auto-draft是自动草稿,trash是在回收站。这里我们需要的是publish的状态的
这里我们主要是要 已经发布的文章、页面和菜单,除此之外的都可以删除,当然可以根据自己的需求选择删除哪些
DELETE FROM wp_posts
WHERE NOT(post_status = ‘publish’ AND post_type IN(‘post’,'nav_menu_item’,’ page’));
③去除WP保存修订版本的功能
WordPress默认的功能并不都是我们想要的,比如修订版本历史对于大多数人来说是无用的鸡肋功能。所以我么需要禁止一些博客功能,来达到较为符合个
人要求的博客应用。对于高手来说,可以直接修改程序的配置文件,来禁止相关功能。对于我等程序小白来说还是利用插件是最佳的选择
推荐中文插件SuperSwitch来关闭一些我们不需要的博客功能。这个插件可以关闭自动保存和修订历史版本,还可以关闭博客程序、主题、插件的自动更新。功能非常强大, *** 作及其简单。用SuperSwitch禁止了保存修订版本之后,文章序号就不会断得太厉害了
5wp_postmeta清理
wp_postmeta是文章的元信息表,其数据是系统或者插件使用
冗余原因:
(1)文章被删除之后,其在wp_postmeta中的数据理应被删除,在系统中多数情况是系统自动删除,但是由于人为删除文章,系统不知道被删除,就不会删除wp_postmeta表中的数据,造成冗余
(2)很多主题、插件没有做好及时清除的工作
解决办法:
① 手动删除
规矩删除
删除文章中不存在文章的元信息
DELETE FROM wp_postmeta WHERE post_id NOT IN (SELECT post_id FROM wp_posts);
安全删除
删除_edit_lock和_edit_last条目是安全的,所以这里给出SQL语句
DELETE FROM wp_postmeta WHERE meta_key = ‘_edit_lock’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_edit_last’;
风险删除
除了这两条还执行了一些其他语句由于有些风险:自己酌情考虑
DELETE FROM wp_postmeta WHERE meta_key = ‘_wp_old_slug’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_revision-control’;
DELETE FROM wp_postmeta WHERE meta_value = ‘{{unknown}}’;
特殊插件删除
postnav插件会记录每个文章的访问数,如果不需要,可以删除
DELETE FROM wp_postmeta WHERE meta_key = ‘views’;
特殊 *** 作删除
在WordPress的后台上传或者附件后会在wp_postmeta中生成_wp_attached_file和_wp_attachment_metadata两个项,wp_posts也会记录附件的信息。如果使用FTP工具上传文件,表中就不会有这些信息
DELETE FROM wp_postmeta WHERE meta_key = ‘_wp_attached_file’;
DELETE FROM wp_postmeta WHERE meta_key = ‘_wp_attachment_metadata’;
洁癖删除
这几条条语句执行完毕能够删除掉95%以上的数据,算的上是极限优化了,最后考虑到这个数据表并不是很重要,有洁
净癖的人可以尝试清空这个表,当然我测试清空表会让一些原本的数据丢失
TRUNCATE TABLE wp_postmeta;
6 wp_commentmeta清理
冗余原因:
(1)评论被删除之后,其在wp_commentmeta中的数据理应被删除,在系统中多数情况是系统自动删除,但是由于人为删除文章,系统不知道被删除,就不会删除wp_commentmeta表中的数据,造成冗余
(2)很多主题、插件没有做好及时清除的工作
解决办法:
一下语句去除没有用的数据,如果评论中没有此条评论,那么在wp_commentmeta也没有意义,好像wordpress在清空回收站的时候会删除wp_commentmeta相应的数据。如果不出意外,下面的 *** 作我们应该不需要做
DELETE FROM wp_comments WHERE comment_approved = ‘trash’;
DELETE FROM wp_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp_comments);
在wp_commentmeta里面会记录评论被删除的时间,这些信息用处不是很大,当评论被从回收站删除之后,这些删除的时间意义就不是很大,就可以删除了,所以用下面的语句一样达到删除的目的
DELETE FROM wp_commentmeta WHERE meta_key LIKE ‘%trash%’;
如果直接全部删除wp_commentmeta,影响不会太大,这里面不会涉及重要的数据
TRUNCATE TABLE wp_commentmeta
7 总结
其实大部分无用的数据均在这几张表中,清理过后应该不会又太多的冗余数据了。但这里没有针对特殊插件或主题做数据库清理,有时这些插件和主题会悄悄动了一些数据库表,这样给清理带来很大难度,需要看代码才知道哦
二、数据库表优化
原理:数据库优化不
涉及数据的删除,是将数据库的表的状态调整好。在使用phpmyadmin时候,或许您会看到数据库表后面有多余xxMB的字样,这个指的是那些已经分配
给当前表但是却没有使用的空间。这个多余是没有什么害处的,他不会占用你的空间。当删除一个表的一部分记录时,这些记录仍然保持在一个linked
list 中,当插入新数据时会再次使用这些老纪录的位置。所以删除纪录会闲置一些空间造成你说的“多余”
优化:
(1)在phpmyadmin手动 优化或者修复表即可
(2)运行SQL:
OPTIMIZE TABLE wp_commentmeta;
OPTIMIZE TABLE wp_comments;
OPTIMIZE TABLE wp_links;
OPTIMIZE TABLE wp_options;
OPTIMIZE TABLE wp_postmeta;
OPTIMIZE TABLE wp_posts;
OPTIMIZE TABLE wp_terms;
OPTIMIZE TABLE wp_term_relationships;
OPTIMIZE TABLE wp_term_taxonomy;
OPTIMIZE TABLE wp_usermeta;
OPTIMIZE TABLE wp_users;
(3)插件:Optimize DB
我是使用SQL语句进行清理与优化的,附我的优化SQL语句(我的表前缀是wp1):
DELETE FROM wp1_posts WHERE NOT(post_status = ‘publish’ AND post_type IN(‘post’,'nav_menu_item’,’ page’));
DELETE FROM wp1_postmeta WHERE meta_key in (‘_edit_lock’,
‘_edit_last’, ‘_wp_old_slug’, ‘_revision-control’, ‘{{unknown}}’,
‘_wp_attached_file’, ‘_wp_attachment_metadata’);
DELETE FROM wp1_postmeta WHERE post_id NOT IN (SELECT id FROM wp1_posts);
DELETE FROM wp1_comments WHERE comment_approved like ‘%trash%’;
DELETE FROM wp1_commentmeta WHERE comment_id NOT IN (SELECT comment_id FROM wp1_comments);
OPTIMIZE TABLE wp1_commentmeta;
OPTIMIZE TABLE wp1_comments;
OPTIMIZE TABLE wp1_links;
OPTIMIZE TABLE wp1_options;
OPTIMIZE TABLE wp1_postmeta;
OPTIMIZE TABLE wp1_posts;
OPTIMIZE TABLE wp1_terms;
OPTIMIZE TABLE wp1_term_relationships;
OPTIMIZE TABLE wp1_term_taxonomy;
OPTIMIZE TABLE wp1_usermeta;
OPTIMIZE TABLE wp1_users;
WP Super Cache 是一款 WordPress 静态缓存插件,也是子凡认为对于 WordPress 性能优化的最佳插件,此插件可以直接从动态的 WordPress 查询页面生成静态 html 文件或者压缩包文件,减轻服务器数据查询和内存的消耗,直接避免页面每次访问通过 php 查询数据库的性能浪费,同时提升页面的载入速度。
WP Super Cache 介绍
WP Super Cache 插件的知名度和使用度非常的高,其主要解决的问题就是 WordPress 本身没有像传统 CMS 程序一样直接生成静态文件的功能,因为我们都知道如果每个页面都是动态从数据库实时查询并生成,不仅仅是浪费服务器资源,也给用户的访问速度和用户体验带来非常严重的影响,也是为流量较大的 WordPress 站点节约服务器成本,对于 WordPress 性能优化的方法可能也有非常多,而子凡认为 WP Super Cache 插件是最佳也是最快速的解放方法。
WP Super Cache 运行模式
WP Super Cache 插件所提供的静态缓存页面将主要提供给未登录的访客、未在博客上发表评论的访客、或者没有查看有密码保护的文章,那么这些访客就会直接访问到由 WP Super Cache 生成的缓存文件,不仅提升了页面的打开速度,也给网站存在登陆或者老访客可供更多的服务器资源,做到更好的兼顾性。
WP Super Cache 插件提供两种主要的缓存模式:
1 简单模式
不推荐。虽然在插件安装后默认推荐使用这样的方式,是因为启用这个缓存模式是最简单的,不需要服务器配置和规则,只要能够正常运行 WordPress 就可以了,因为这种缓存模式主要使用由 php 提供缓存。
2 专家模式
这是子凡最为推荐的一种方式,也是最快的方式,通过 Mod_Rewrite 模块向用户提供 WP Super Cache 生成的缓存文件,这样就直接绕过 WordPress php 从数据库中查询,可以说是速度杠杠的,如果你是 Apache 服务器则需要修改htaccess 文件,Nginx 服务器也需要添加 Nginx 规则。
内容参考来源:网页链接
1、彻底清除残留WordPress主题垃圾数据
经常换WP主题删WP主题,装插件删插件很正常,但是简单的删除并不彻底,数据库会有残留,多余的数据保留在post_meta表格里,久而久之就成了一堆可观的垃圾。可使用下面的SQL语句来清除不需要的post meta值。有益于加快数据库运行速度,减小数据。
处理方法:清理wp_postmeta数据表,删除文章Meta标签,执行SQL语句,(建议先备份数据库,以上商法,后进者网络均已测试无误)
DELETE FROM wp_postmeta WHEREmeta_key = ‘_edit_lock’;
DELETE FROM wp_postmeta WHEREmeta_key = ‘_edit_last’;
2、彻底删除WP草稿修订版本残留数据
后台编辑文章时,系统会自动保存多个修订的副本。过多的修订记录会加重数据库负担造成资源浪费,数据库越来越庞大,增加了数据检索影响页面的加载时间。
处理方法:清理wp_posts数据表,删除草稿修订版本,执行SQL语句
DELETE a,b,c FROM wp_posts a
LEFT JOIN wp_term_relationships bON (aID = bobject_id)
LEFT JOIN wp_postmeta c ON (aID =cpost_id)
WHERE apost_type = ‘revision’
注意: 此方法将删除所有的文章的所有修订版,包括相关的meta数据。
也可以使用插件WP-Cleane处理。
3、批量删除WordPress所有垃圾评论
遇到N多垃圾评论,一个一个删除的话会崩溃。可使用下面的SQL语句查询,批量删除WP垃圾评论也不是难事。
处理方法:执行SQL语句
DELETE FROM wp_comments WHEREcomment_approved = ‘spam’;
0 = Comment Awaiting Moderation
1 = Approved Comment
spam = Comment marked as Spam
先用上面方法删除之前的垃圾评论,以后推荐使用Akismet插件,Akismet拥有广泛的垃圾留言过滤系统,省下很多事。
4、删除WordPress未使用标签垃圾数据
WordPress数据库中,如果你使用一个查询语句手动来删除旧的文章,旧的标签却仍然会保留并在你的标签云/列表中出现。你可以使用下面的方法识别未使用的标签并将它删除。
处理方法:执行SQL语句
SELECT FROM wp_terms wt
INNER JOIN wp_term_taxonomy wtt ONwtterm_id=wttterm_id
INNER JOIN wp_term_relationshipswtr ON wtrterm_taxonomy_id=wttterm_taxonomy_id
LEFT JOIN wp_posts wp ONwpID=wtrobject_id
WHERE taxonomy=’post_tag’
AND ID IS null
AND NOT EXISTS(SELECT Fromwp_terms wt2
INNER JOIN wp_term_taxonomy wtt2 ONwt2term_id=wtt2term_id WHERE wtt2parent=wtterm_id) ORDER BY name;
有的人也许会问,这么复杂的SQL语句,应该有WP插件开发者开发相应的数据库优化插件吧。没错还真有相关的优化WP数据库插件。
WordPress数据库优化插件 wp db manager :可以优化、修复、定期备份、执行mysql命令的插件。安装好这个插件之后,可以选择Optimize DB优化数据库。
以上就是关于说说如何选择一个好的网站SEO优化程序全部的内容,包括:说说如何选择一个好的网站SEO优化程序、怎么清理优化wordpress数据库、有哪些非常值得推荐的wordpress插件对于提升网页打开速度及代码编辑等方面,哪些插件性能强大等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)