Tips for Running a Large Website Using Joomla

132
@bwmarkle

description

My name is Brad Markle, and I help manage the InMotion Hosting Support Center - http://www.inmotionhosting.com/support. Our Support Center has run Joomla for the last ~3 years, and in 2013 we made the migration from Joomla 1.5 to Joomla 3.0. At the time of this writing, we have over 7,000 pages published and are getting more than 90,000 hits from search engines each week. In this presentation I will talk about some of the problems we've faced running such a large website and some of the solutions we've come up with.

Transcript of Tips for Running a Large Website Using Joomla

Page 1: Tips for Running a Large Website Using Joomla

@bwmarkle

Page 2: Tips for Running a Large Website Using Joomla

Large Website?

What do you mean?

Page 3: Tips for Running a Large Website Using Joomla

Lots

Staff

Traffic

Page 4: Tips for Running a Large Website Using Joomla

How does

Inmotion hosting .com

compare?

Page 5: Tips for Running a Large Website Using Joomla
Page 6: Tips for Running a Large Website Using Joomla

google.com

Page 7: Tips for Running a Large Website Using Joomla

# 1

Page 8: Tips for Running a Large Website Using Joomla
Page 9: Tips for Running a Large Website Using Joomla

craigslist.org

Page 10: Tips for Running a Large Website Using Joomla

# 49

Page 11: Tips for Running a Large Website Using Joomla
Page 12: Tips for Running a Large Website Using Joomla

joomla.org

Page 13: Tips for Running a Large Website Using Joomla

# 431

Page 14: Tips for Running a Large Website Using Joomla
Page 15: Tips for Running a Large Website Using Joomla

Inmotion hosting .com

Page 16: Tips for Running a Large Website Using Joomla

# 1,596

Page 17: Tips for Running a Large Website Using Joomla
Page 18: Tips for Running a Large Website Using Joomla

OK, so we're not in the top 100 sites or anything like that....

But we get a good amount of traffic.

Page 19: Tips for Running a Large Website Using Joomla

Tips for Running a Large Website Using Joomla

Tip 1:

Take Google Analytics to the next level with Custom Variables and Event Tracking

Page 20: Tips for Running a Large Website Using Joomla

What is a Custom Variable?

Page 21: Tips for Running a Large Website Using Joomla

Name + Value

Mark Twain

Author Ernest Hemingway

Edgar Allan Poe

Page 22: Tips for Running a Large Website Using Joomla

Name + Value

John-Paul Briones

Author Jeff Matson

Brad Markle

Page 23: Tips for Running a Large Website Using Joomla

How to use Custom Variables?

Page 24: Tips for Running a Large Website Using Joomla

It's just 1 line of javascript

Page 25: Tips for Running a Large Website Using Joomla
Page 26: Tips for Running a Large Website Using Joomla

OK. 1 line of code. But how?

… just look at our source

Page 27: Tips for Running a Large Website Using Joomla
Page 28: Tips for Running a Large Website Using Joomla

_gaq.push(['_setCustomVar',5,'Author','BradM'

]);

$this->item->author

Page 29: Tips for Running a Large Website Using Joomla

How do you see Custom Variables in Analytics?

Page 30: Tips for Running a Large Website Using Joomla
Page 31: Tips for Running a Large Website Using Joomla

Key or Value?

Custom Variable (Key 5)

Custom Variable (Value 05)______________________

John-Paul

Author Jeff

Brad

Page 32: Tips for Running a Large Website Using Joomla

Great!

1. Custom Variable is setup

2. We know how to access variable in Analytics

Now what?

Page 33: Tips for Running a Large Website Using Joomla

Question:

Which author brings in the most traffic?

Page 34: Tips for Running a Large Website Using Joomla

Start off with traffic ...

Page 35: Tips for Running a Large Website Using Joomla
Page 36: Tips for Running a Large Website Using Joomla

… then add your authors

Page 37: Tips for Running a Large Website Using Joomla
Page 38: Tips for Running a Large Website Using Joomla
Page 39: Tips for Running a Large Website Using Joomla

Question:

Which author brings in the most traffic?

Page 40: Tips for Running a Large Website Using Joomla

This guy!

That's me!

Page 41: Tips for Running a Large Website Using Joomla

but seriously....

Page 42: Tips for Running a Large Website Using Joomla
Page 43: Tips for Running a Large Website Using Joomla
Page 44: Tips for Running a Large Website Using Joomla
Page 45: Tips for Running a Large Website Using Joomla

Question:

Which author has the most social shares?

Page 46: Tips for Running a Large Website Using Joomla
Page 47: Tips for Running a Large Website Using Joomla

Custom Variables

Page 48: Tips for Running a Large Website Using Joomla

What is Event Tracking?

Page 49: Tips for Running a Large Website Using Joomla

_gaq.push(['_trackEvent','chat','launch'

]);

This is our button,“Chat with us”

When someone clicks on it,An event has just occurred.

Page 50: Tips for Running a Large Website Using Joomla

How do you see Events in Analytics?

Page 51: Tips for Running a Large Website Using Joomla
Page 52: Tips for Running a Large Website Using Joomla
Page 53: Tips for Running a Large Website Using Joomla

_gaq.push(['_trackEvent','chat','launch'

]);

Page 54: Tips for Running a Large Website Using Joomla

_gaq.push(['_trackEvent','chat','launch'

]);

Page 55: Tips for Running a Large Website Using Joomla

Explore Analytics

See what you can find, like....

Page 56: Tips for Running a Large Website Using Joomla

Which pages do users click “chat” on the most?

Page 57: Tips for Running a Large Website Using Joomla
Page 58: Tips for Running a Large Website Using Joomla

Custom Variables

Event Tracking

Custom Variables &Event Tracking together?

Page 59: Tips for Running a Large Website Using Joomla

Custom Variables &Event Tracking together?

Page 60: Tips for Running a Large Website Using Joomla
Page 61: Tips for Running a Large Website Using Joomla

With this data you can...

Page 62: Tips for Running a Large Website Using Joomla

Strike down yourwriters causing the

most chats

Page 63: Tips for Running a Large Website Using Joomla

Or...

Page 64: Tips for Running a Large Website Using Joomla

Give praise tothose whose writing

helps people.

Page 65: Tips for Running a Large Website Using Joomla

Tips for Running a Large Website Using Joomla

Tip 1:

Take Google Analytics to the next level with Custom Variables and Event Tracking

Page 66: Tips for Running a Large Website Using Joomla

Tips for Running a Large Website Using Joomla

Tip 2:

Don't talk to bad bots, it's a waste of precious resources.

Page 67: Tips for Running a Large Website Using Joomla

Bot Activity

How much bot activity does your site get?

Page 68: Tips for Running a Large Website Using Joomla
Page 69: Tips for Running a Large Website Using Joomla
Page 70: Tips for Running a Large Website Using Joomla
Page 71: Tips for Running a Large Website Using Joomla
Page 72: Tips for Running a Large Website Using Joomla

Bots may crawl your site looking forindex.php?title=something

Page 73: Tips for Running a Large Website Using Joomla

February 2014

we had how much mediawiki bot traffic?

A: 1,000B: 10,000C: 100,000D: 1,000,000

Page 74: Tips for Running a Large Website Using Joomla

What were they looking for?

Page 75: Tips for Running a Large Website Using Joomla

index.php?title=Auto_Insurance_In_Jacksonville_-_This_Month:_Get_Car_Insurance_In_Jacksonville_At_up_to_Half-Price

index.php?title=A_Bit_More_About_Los_Angeles_Car_Insurance

index.php?title=Special:UserLogin&type=signup

Page 76: Tips for Running a Large Website Using Joomla

100,006 hits / monthto pages that don't exist...

….So what?

Page 77: Tips for Running a Large Website Using Joomla

100,006 hits * 27 queries each

2,700,162 queries / month

Page 78: Tips for Running a Large Website Using Joomla

BLOCK THE BOTS

● .htaccess● Php● ModSecurity

Page 79: Tips for Running a Large Website Using Joomla

Bots.... another example

Page 80: Tips for Running a Large Website Using Joomla

From our apache logs....

"POST /support/community-support/joomla-25/index.php?option=com_jce&task=plugin&plugin=imgmanager&file=imgmanager&method=form&cid=20&6bc427c8a7981f4fe1f5ac65c1246b5f=cf6dd3cf1923c950586d0dd595c8e20b HTTP/1.1" 400 232 "-" "BOT/0.1 (BOT for JCE)"

Page 81: Tips for Running a Large Website Using Joomla

Basically... It's a URL for JCE

Page 82: Tips for Running a Large Website Using Joomla
Page 83: Tips for Running a Large Website Using Joomla

We don't use JCE, but...

February 2014, we had...

80,975 requests that in the URL had

BOT for JCE or option=com_jce

Page 84: Tips for Running a Large Website Using Joomla

Tips for Running a Large Website Using Joomla

Tip 2:

Don't talk to bad bots, it's a waste of precious resources.

Page 85: Tips for Running a Large Website Using Joomla

Tips for Running a Large Website Using Joomla

Tip 2.5:

Check your work.

Page 86: Tips for Running a Large Website Using Joomla

200404406500666

Page 87: Tips for Running a Large Website Using Joomla
Page 88: Tips for Running a Large Website Using Joomla

Tips for Running a Large Website Using Joomla

Tip 2.5:

Check your work.

Page 89: Tips for Running a Large Website Using Joomla

Tips for Running a Large Website Using Joomla

Tip 3:

If you're not using Joomla's cache because of its pitfalls, find a work around.

Page 90: Tips for Running a Large Website Using Joomla

Things to Watch When Using Page Caching

● It does not apply to the Administrator. OK● It only applies to guest visitors (not logged in).

OK● Page caching does not work if Debug Site in

Global Configuration is set to Yes. OK● Articles hits will not increase when page

caching is turned on (making any sorting options on hits ineffective). NOT OK

Page 91: Tips for Running a Large Website Using Joomla

We enabled cache...

Page 92: Tips for Running a Large Website Using Joomla
Page 93: Tips for Running a Large Website Using Joomla

We loved it!

… so far so good

Page 94: Tips for Running a Large Website Using Joomla
Page 95: Tips for Running a Large Website Using Joomla

Google is seeing our page download almost twice as fast!

Page 96: Tips for Running a Large Website Using Joomla

The major problem for us...

Page 97: Tips for Running a Large Website Using Joomla

If Joomla Caching is enabled

Then # hits per article doesn't increase

Page 98: Tips for Running a Large Website Using Joomla

Hmm...

So how do we

increase page hits

when caching is enabled?

Page 99: Tips for Running a Large Website Using Joomla

We gotan idea!

Page 100: Tips for Running a Large Website Using Joomla

First...

We told Joomla to stop increasing page hits.

… we'll take care of it ourselves.

Page 101: Tips for Running a Large Website Using Joomla

We created a file....

increase_hits.phpThat if sentan article id....

1234

Will add 1 to `hits`

Page 102: Tips for Running a Large Website Using Joomla

increase_hits.php

Pages served

from cache

Pages served

fresh

Article – ID:1234

Page 103: Tips for Running a Large Website Using Joomla

Regardless of:

Page = cached

Page = NOT cached

Hits will increase in the database

Page 104: Tips for Running a Large Website Using Joomla

Great, article hits increase!

But, hits shown is still cached.

Page 105: Tips for Running a Large Website Using Joomla

166,351 166,352 166,353

increase_hits.php

Page 106: Tips for Running a Large Website Using Joomla

increase_hits.php

166,351

Page 107: Tips for Running a Large Website Using Joomla

Regardless of:

Page = cached

Page = NOT cached

Hits will increase on the front end

Page 108: Tips for Running a Large Website Using Joomla

Tips for Running a Large Website Using Joomla

Tip 3:

If you're not using Joomla's cache because of its pitfalls, find a work around.

Page 109: Tips for Running a Large Website Using Joomla

Tips for Running a Large Website Using Joomla

Tip 4:

Joomla will not be upset if you don't use a built in component.

Page 110: Tips for Running a Large Website Using Joomla
Page 111: Tips for Running a Large Website Using Joomla
Page 112: Tips for Running a Large Website Using Joomla
Page 113: Tips for Running a Large Website Using Joomla
Page 114: Tips for Running a Large Website Using Joomla
Page 115: Tips for Running a Large Website Using Joomla

● Anchor Text● All vs. Exact● Articles graded higher than Forum

Page 116: Tips for Running a Large Website Using Joomla
Page 117: Tips for Running a Large Website Using Joomla

Tips for Running a Large Website Using Joomla

Tip 4:

Joomla will not be upset if you don't use a built in component.

Page 118: Tips for Running a Large Website Using Joomla

Tips for Running a Large Website Using Joomla

Tip 5:

Template overrides are awesome! Make sure you know about them.

Page 119: Tips for Running a Large Website Using Joomla

We use template overrides to

quickly

whip up

helpful tools

for our customers...

Page 120: Tips for Running a Large Website Using Joomla
Page 121: Tips for Running a Large Website Using Joomla
Page 122: Tips for Running a Large Website Using Joomla

How to create a “tool” in

2 easy steps...

Page 123: Tips for Running a Large Website Using Joomla

Step 1

Page 124: Tips for Running a Large Website Using Joomla

Step 1. Create the Override

/templates/TEMPLATE/html/com_content/article/whois.php

Page 125: Tips for Running a Large Website Using Joomla

Step 2

Page 126: Tips for Running a Large Website Using Joomla

Step 2. Create the Article

Page 127: Tips for Running a Large Website Using Joomla

An den?........

Page 128: Tips for Running a Large Website Using Joomla

ifthen

Page 129: Tips for Running a Large Website Using Joomla

But....

Do not use that code in my last slide...

Page 130: Tips for Running a Large Website Using Joomla

It's not safe

Page 131: Tips for Running a Large Website Using Joomla

Tips for Running a Large Website Using Joomla

Tip 5:

Template overrides are awesome! Make sure you know about them.

Page 132: Tips for Running a Large Website Using Joomla

@bwmarkle