SEOClerks

Broken links and how to set up a 404 page?



Write the reason you're deleting this FAQ

Broken links and how to set up a 404 page?

I have had to remove quite a lot of content from my website recently and the discussion about broken links caught my eye.

So if I have deleted some URLs from my website how will that affect my SEO?

I was given some advice about 404 pages but I don't even know how to set these up, so any advice would be greatly appreciated.

Comments

Please login or sign up to leave a comment

Join
idealmike
So if I have deleted some URLs from my website how will that affect my SEO?

Well if you had some backlinks and social shares built and pointing to those URLs, when someone visits them from that backlink to that link or a tweet or something, they wont see that page anymore and will either be shown a 404 page or be auto-redirected to a similar page instead.

In an attempt to cut down on 404 error pages, WordPress automatically built in auto-redirection a while back. It's not perfect and rather clunky how it works. It will basically look for another page that has a similar URL to the old one and redirect the user there. Sometimes that's not always practical and recommended. But it's better than just showing a 404 page.

Setting up a 404 page is a synch!

You'll need to create the 404 page first and upload it somewhere to your server.

Then you'll just need to enter some rule into your .htaccess file on a new line like so;

ErrorDocument 404 /new404.html


Where new404.html is your error page that will be shown. You can call it whatever you want. Just make sure that you link to the correct location of it. If it's in a deeper sub-directory then it would be ErrorDocument 404 /error_pages/new404.html for example.

If you're using an Apache server then when a user mis-types a wrong URL or is sent to a page/post that no longer exists. Apache will read the .htaccess file and redirect them to that error page.

You can get really quite creative with error pages actually. You can put a funny picture on it. But you should also have something else on it such as links to possible related sources. A sitemap even maybe and a search form so they can search again.

Some error pages are really funny! Check these out.
60 Really Cool and Creative Error 404 Pages.
30 brilliantly designed 404 error pages.

Broken links and how to set up a 404 page?
Here's a video that shows how to set up a custom 404 error page using Cpanel.



Check out some other videos on it as well to get up to speed with it.

Hope this helps! Broken links and how to set up a 404 page?



Are you sure you want to delete this post?

Lynne
Oh my gosh Mike you had me laughing with the Chuck Norris 404 page, that is such a cool idea.... this is for my mommy blog so I am sure I can come up with something amusing for my 404 page.

Very often you explain things in such a lovely easy way that I can sort out my problem immediately on my own. So here I can make a 404 page on my own I am sure.. but then you talk some mumbo jumbo stuff that is just way too technical for me.

I will get working on my page and then I will tell my sister about it and she can finish up this job for me. I must say she does come in handy.



Are you sure you want to delete this post?

Cristian
What kind of pages have you deleted? Something like blog posts or static pages? Nevertheless I personally preffer installing a redirect plugin, so after deleting a page for various reasons, I usually insert a 301 for the deleted page redirecting it to a similar content or to my homepage. I never delete a URL without doing this.

As Mike said, maybe you have social media link pointing to it or maybe other folks with websites link to it for various reasons, you will want that authority and link juice saved and you will want Google to find a clean 404 record.



Are you sure you want to delete this post?

Order Now
Process Time: 0.32426691055298

Possible Duplicate queries found!
MatchCountSQLScript
SELECT * FROM `questions` as q JOIN categories_faq as c ON q.catid=c.CATID WHERE (q.status=1 OR (q.status=2 AND userid='') ) AND q.quesid='19506'1SELECT q.*, c.seo as CatSEO, c.name as CatName, c.parentid FROM `questions` as q JOIN categories_faq as c ON q.catid=c.CATID WHERE (q.status=1 OR (q.status=2 AND userid='') ) AND q.quesid='19506'

/opt/clerks-staging/docroot/viewfaq.php 496 () ()

SELECT * FROM seoclerks.members WHERE USERID='306632'1SELECT * FROM seoclerks.members WHERE USERID='306632'

/opt/clerks-staging/docroot/include/functions/includes/member.php 445 GetAllUserDetails() ()

SELECT * FROM seoclerks.members WHERE USERID=3066321SELECT googleplus_profile FROM seoclerks.members WHERE USERID=306632

/opt/clerks-staging/docroot/include/functions/main.php 16914 GetGooglePlusProfileFromId() ()

SELECT * FROM ratings_faq as r, seoclerks.members as m WHERE r.USERID=m.USERID AND r.upvote=1 AND r.PID=19506 LIMIT 51SELECT m.username FROM ratings_faq as r, seoclerks.members as m WHERE r.USERID=m.USERID AND r.upvote=1 AND r.PID=19506 LIMIT 5

/opt/clerks-staging/docroot/include/functions/main.php 17159 GetVoters() ()

SELECT * FROM answers a, seoclerks.members b WHERE a.quesid='19506' AND a.userid=b.USERID and b.status='1' AND a.status=1 ORDER BY a.combined_votes DESC, a.date_answered asc1SELECT a.answer, a.USERID, a.upvotes, a.downvotes, a.ansid, a.parentid, a.combined_votes, a.date_answered, b.username, b.userlevel, b.profilepicture FROM answers a, seoclerks.members b WHERE a.quesid='19506' AND a.userid=b.USERID and b.status='1' AND a.status=1 ORDER BY a.combined_votes DESC, a.date_answered asc

/opt/clerks-staging/docroot/viewfaq.php 1245 () ()

SELECT * FROM ratings_faqanswers as r, seoclerks.members as m WHERE r.USERID=m.USERID AND r.upvote=1 AND r.PID=106918 LIMIT 51SELECT m.username FROM ratings_faqanswers as r, seoclerks.members as m WHERE r.USERID=m.USERID AND r.upvote=1 AND r.PID=106918 LIMIT 5

/opt/clerks-staging/docroot/include/functions/main.php 17159 GetVoters() ()

SELECT * FROM ratings_faqanswers as r, seoclerks.members as m WHERE r.USERID=m.USERID AND r.upvote=1 AND r.PID=106920 LIMIT 51SELECT m.username FROM ratings_faqanswers as r, seoclerks.members as m WHERE r.USERID=m.USERID AND r.upvote=1 AND r.PID=106920 LIMIT 5

/opt/clerks-staging/docroot/include/functions/main.php 17159 GetVoters() ()

SELECT * FROM ratings_faqanswers as r, seoclerks.members as m WHERE r.USERID=m.USERID AND r.upvote=1 AND r.PID=107205 LIMIT 51SELECT m.username FROM ratings_faqanswers as r, seoclerks.members as m WHERE r.USERID=m.USERID AND r.upvote=1 AND r.PID=107205 LIMIT 5

/opt/clerks-staging/docroot/include/functions/main.php 17159 GetVoters() ()

UPDATE questions SET total_views = total_views + 1 WHERE quesid='19506'1UPDATE questions SET total_views = total_views + 1 WHERE quesid='19506'

/opt/clerks-staging/docroot/include/functions/main.php 1765 update_Faqviewcount() ()

SELECT * FROM questions WHERE quesid!='19506' AND status='1' AND (question like '%Broken links set 404 page? %' OR question like '%Broken%' OR question like '%links%' OR question like '%page?%') -- ORDER BY RAND() LIMIT 151SELECT quesid, question, seo, userid FROM questions WHERE quesid!='19506' AND status='1' AND (question like '%Broken links set 404 page? %' OR question like '%Broken%' OR question like '%links%' OR question like '%page?%') -- ORDER BY RAND() LIMIT 15

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() ()

SELECT * FROM seoclerks.members WHERE USERID='632' limit 11SELECT profilepicture FROM seoclerks.members WHERE USERID='632' limit 1

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() insert_get_member_profilepicture()

SELECT * FROM seoclerks.members WHERE USERID='9' limit 11SELECT profilepicture FROM seoclerks.members WHERE USERID='9' limit 1

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() insert_get_member_profilepicture()

SELECT * FROM seoclerks.members WHERE USERID='707' limit 11SELECT profilepicture FROM seoclerks.members WHERE USERID='707' limit 1

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() insert_get_member_profilepicture()

SELECT * FROM seoclerks.members WHERE USERID='498' limit 11SELECT profilepicture FROM seoclerks.members WHERE USERID='498' limit 1

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() insert_get_member_profilepicture()

SELECT * FROM seoclerks.members WHERE USERID='1129' limit 11SELECT profilepicture FROM seoclerks.members WHERE USERID='1129' limit 1

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() insert_get_member_profilepicture()

SELECT * FROM members_ledger WHERE script='/opt/clerks-staging/docroot/viewfaq.php' AND querystring LIKE '%id=19506%' AND added>=UNIX_TIMESTAMP(NOW())-1200 GROUP BY USERID 1SELECT USERID, username FROM members_ledger WHERE script='/opt/clerks-staging/docroot/viewfaq.php' AND querystring LIKE '%id=19506%' AND added>=UNIX_TIMESTAMP(NOW())-1200 GROUP BY USERID

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() ()

SELECT * FROM categories1SELECT * FROM categories

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() parseRedundantQueriesCache()

select * from categories_software order by name asc1select * from categories_software order by name asc

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() insert_GetSoftwareCategories()

select * from categories_wanttobuy order by name asc1select * from categories_wanttobuy order by name asc

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() insert_get_wantcategories()

select * from categories_wanttotrade order by name asc1select * from categories_wanttotrade order by name asc

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() insert_get_tradecategories()

SELECT * FROM seoclerks.members WHERE USERID='272.jpg'1SELECT profilepicture FROM seoclerks.members WHERE USERID='272.jpg'

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() getUserProfileImage()

SELECT * FROM seoclerks.members WHERE USERID='306632.jpg'1SELECT profilepicture FROM seoclerks.members WHERE USERID='306632.jpg'

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() getUserProfileImage()

SELECT * FROM seoclerks.members WHERE USERID='134.png'1SELECT profilepicture FROM seoclerks.members WHERE USERID='134.png'

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() getUserProfileImage()

select * from categories_faq order by name asc1select * from categories_faq order by name asc

/opt/clerks-staging/docroot/libraries/adodb5/adodb.inc.php 1899 CacheExecute() insert_GetFaqCategories()

Invalid SQL

count(*)sql1error_msg

Expensive SQL

Tuning the following SQL could reduce the server load substantially
LoadCountSQLMaxMin

Suspicious SQL

The following SQL have high average execution times
Avg TimeCountSQLMaxMin