diff --git a/setup/doctype/item_group/item_group.py b/setup/doctype/item_group/item_group.py
index 13112fe..ba4ea77 100644
--- a/setup/doctype/item_group/item_group.py
+++ b/setup/doctype/item_group/item_group.py
@@ -31,9 +31,12 @@
 		
 		self.validate_name_with_item()
 		
+		from website.helpers.product import invalidate_cache_for
+		
+		
 		if self.doc.show_in_website:
-			# webpage updates
 			from website.utils import update_page_name
+			# webpage updates
 			page_name = self.doc.name
 			if webnotes.conn.get_value("Product Settings", None, 
 				"default_product_category")==self.doc.name:
@@ -43,8 +46,17 @@
 				
 			update_page_name(self.doc, page_name)
 			
-			from website.helpers.product import invalidate_cache_for
 			invalidate_cache_for(self.doc.name)
+
+		elif self.doc.page_name:
+			# if unchecked show in website
+			
+			from website.utils import delete_page_cache
+			delete_page_cache(self.doc.page_name)
+			
+			invalidate_cache_for(self.doc.name)
+			
+			webnotes.conn.set(self.doc, "page_name", None)
 		
 	def validate_name_with_item(self):
 		if webnotes.conn.exists("Item", self.doc.name):
diff --git a/stock/doctype/item/item.py b/stock/doctype/item/item.py
index 4c78347..334af298 100644
--- a/stock/doctype/item/item.py
+++ b/stock/doctype/item/item.py
@@ -39,9 +39,8 @@
 	def on_update(self):
 		self.validate_name_with_item_group()
 		
-		if self.doc.show_in_website:
-			# webpage updates
-			self.update_website()
+		# webpage updates
+		self.update_website()
 			
 		bin = sql("select stock_uom from `tabBin` where item_code = '%s' " % self.doc.item_code)
 		if bin and cstr(bin[0][0]) != cstr(self.doc.stock_uom):
@@ -81,19 +80,33 @@
 				self.doc.name, raise_exception=1)
 
 	def update_website(self):
-		from website.utils import update_page_name
-		if self.doc.name==self.doc.item_name:
-			page_name_from = self.doc.name
-		else:
-			page_name_from = self.doc.name + " " + self.doc.item_name
+		def _invalidate_cache():
+			from website.helpers.product import invalidate_cache_for
+			
+			invalidate_cache_for(self.doc.item_group)
 
-		update_page_name(self.doc, page_name_from)
+			[invalidate_cache_for(d.item_group) for d in \
+				self.doclist.get({"doctype":"Website Item Group"})]
 		
-		from website.helpers.product import invalidate_cache_for
-		invalidate_cache_for(self.doc.item_group)
+		if self.doc.show_in_website:
+			from website.utils import update_page_name
+			if self.doc.name==self.doc.item_name:
+				page_name_from = self.doc.name
+			else:
+				page_name_from = self.doc.name + " " + self.doc.item_name
 
-		[invalidate_cache_for(d.item_group) for d in \
-			self.doclist.get({"doctype":"Website Item Group"})]
+			update_page_name(self.doc, page_name_from)
+			
+			_invalidate_cache()
+		
+		elif self.doc.page_name:
+			# if unchecked show in website
+			from website.utils import delete_page_cache
+			delete_page_cache(self.doc.page_name)
+			
+			_invalidate_cache()
+			
+			webnotes.conn.set(self.doc, "page_name", None)
 
 	# On delete 1. Delete BIN (if none of the corrosponding transactions present, it gets deleted. if present, rolled back due to exception)
 	def on_trash(self):
